表3的姓名中应该包括所有出现在表1和表2姓名中的记录,如果某人在表1中没出现,则相当于创收为0;同样如果某人在表2中没出现,则相当于花费为0.
再举例Table1
姓名 创收
A 2000
C 300
A 200
Table2
姓名 花费
A 400
B 20
D 200
现在想得到一个综合结果,如下
姓名 创收 花费
A 2200 400
B 0 20
C 300 0
D 0 200
select isnull(a.姓名,b.姓名) as 姓名,a.创收,b.花费
from
( select table1.姓名,sum(table1.创收) 创收
from table1
group by table1.姓名
) as a
full outer join
(
select table2.姓名,sum(table2.花费) 花费
from table2
group by table2.姓名
) as b
on a.姓名=b.姓名
(或者第一行为)
select isnull(a.姓名,b.姓名) as 姓名,isnull(a.创收,0) as 创收,isnull(b.花费,0) as 花费
否则有些查询出来的创收或花费为 NULL ,也许你需要他们为 0.