
求助:SQL分类汇总求和运算
A表ID编号数量01010130101023020201102020220303013B表ID编号数量010101402020120303013selectsum(A.数...
A表 ID 编号 数量
01 0101 3
01 0102 3
02 0201 1
02 0202 2
03 0301 3
B表
ID 编号 数量
01 0101 4
02 0201 2
03 0301 3
select sum(A.数量) as 数量A from A group by ID
select sum(B.数量) as 数量B from B group by ID
然后:数量A-数量B
求结果为:
C表 ID 数量
01 2
02 1
03 0
问SQL里怎么实现啊,怎么写SQL语句啊?谢谢了 展开
01 0101 3
01 0102 3
02 0201 1
02 0202 2
03 0301 3
B表
ID 编号 数量
01 0101 4
02 0201 2
03 0301 3
select sum(A.数量) as 数量A from A group by ID
select sum(B.数量) as 数量B from B group by ID
然后:数量A-数量B
求结果为:
C表 ID 数量
01 2
02 1
03 0
问SQL里怎么实现啊,怎么写SQL语句啊?谢谢了 展开
2个回答
展开全部
select t1.id, t1.数量 - isnull(t2.数量, 0) as 数量
from
(select id, sum(数量) as 数量
from a
group by id ) t1 left join
(select id, sum(数量) as 数量
from b
group by id) t2 on t1.id = t2.id
使用left join是担心a表的id会在b表不存在,那么就会缺少这个id的差值了。
from
(select id, sum(数量) as 数量
from a
group by id ) t1 left join
(select id, sum(数量) as 数量
from b
group by id) t2 on t1.id = t2.id
使用left join是担心a表的id会在b表不存在,那么就会缺少这个id的差值了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询