多表合成问题
有两个表结构如下
表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