读书人

多表合成有关问题

发布时间: 2012-12-14 10:33:08 作者: rapoo

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

表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

读书人网 >SQL Server

热点推荐