sql怎么使用外连接

表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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值