首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多表合成有关问题

2012-12-14 
多表合成问题有两个表结构如下表1:用户Id 额外所得11200.003400.00表2:用户Id 额外所得2110.00211.20要求

多表合成问题
有两个表结构如下

表1:
用户Id 额外所得1
1      200.00
3      400.00


表2:
用户Id 额外所得2
1       10.00
2       11.20

要求合成一个表结构如下:
用户Id 额外所得1 额外所得2
1       200       10.00
2       0.00      11.20
3       400       0.00

就是要求把表1和表2出现过的记录按用户Id合并起来,please help.....




[最优解释]
select isnull(a.用户id,b.用户id) as 用户id,isnull(额外所得1,0) as 额外所得1,isnull(额外所得2,0) as 额外所得2
from TB1 as a  full join TB2 as b on a.用户id=b.用户id
[其他解释]

SELECT 用户Id ,SUM(额外所得1), SUM(额外所得2)
FROM (

SELECT 用户Id ,额外所得1,0 额外所得2
FROM 表1
UNION ALL 
SELECT 用户Id ,0 额外所得1, 额外所得2
FROM 表2
) a
GROUP BY 用户Id

[其他解释]

SELECT 用户ID,额为金额1,额外金额2 FROM 表1 LEFT JOIN 表2 ON 表1.ID=表2.ID

[其他解释]
谢谢各位帮忙,雪狼和发粪涂墙的方法都很好,结果也正确,灬尒蕏づ的方法会丢失掉表2的记录

[其他解释]
雪狼的在大数据量的时候会很慢,我的那个客户忽略主键问题。还是建议用我的
[其他解释]
null

热点排行