求教一个sql问题

啊雪莉 2019-07-05 02:28:00
表A
id number
A 5
A 3
B 5
B 3
C 5
D 5
E 5
-------------------------------------
表B
id number
B 3
B 1
C 5
D 5
--------------------------------------
我希望能获取表A和表B之间sum(number)的差,如果表B中不存在,则显示表A的值

id number
A 8
B 4
C 0
D 0
E 5

请问下该如何实现
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
啊雪莉 2019-07-05
  • 打赏
  • 举报
回复
引用 1 楼 唐诗三百首 的回复:

select a.id,
number=a.number-isnull(b.number,0)
from (select id,number=sum(number)
from 表A
group by id) a
left join (select id,number=sum(number)
from 表B
group by id) b on a.id=b.id


好了,多谢
唐诗三百首 2019-07-05
  • 打赏
  • 举报
回复

select a.id, 
       number=a.number-isnull(b.number,0)
 from (select id,number=sum(number)
        from 表A
        group by id) a
 left join (select id,number=sum(number)
             from 表B
             group by id) b on a.id=b.id

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧