如用SQL语句进行多表关联汇总,该怎么解决
如用SQL语句进行多表关联汇总
A表
ID 名称
1 c
2 d
3 e
4 f
B表
ID 名称 数量
1 c 1
2 d 1
3 e 1
4 e 1
5 f 2
C表
ID 名称 数量
1 a 1
2 c 1
3 e 1
4 e 1
5 f 2
1 a 1
2 c 1
3 e 1
4 e 1
5 f 2
返回
名称 A表总数量 c表总数量
c 1 2
d 1 0
e 2 4
f 2 2
如何用SQL语句达到目标
------解决方案--------------------
A表
ID 名称
1 c
2 d
3 e
4 f
B表
ID 名称 数量
1 c 1
2 d 1
3 e 1
4 e 1
5 f 2
C表
ID 名称 数量
1 a 1
2 c 1
3 e 1
4 e 1
5 f 2
1 a 1
2 c 1
3 e 1
4 e 1
5 f 2
返回
名称 A表总数量 c表总数量
c 1 2
d 1 0
e 2 4
f 2 2
如何用SQL语句达到目标
------解决方案--------------------
- SQL code
select a.名称,sum(a.数量) as A表总数量,isnull(sum(c.数量),0) as c表总数量 from a left join c on a.名称=c.名称
------解决方案--------------------
- SQL code
select a.名称, isnull(b.数量,0) B表总数量, isnull(c.数量,0) C表总数量 from A left join (select 名称,sum(数量) as 数量 from B group by 名称) b on a.名称=b.名称 left join (select 名称,sum(数量) as 数量 from C group by 名称) c on a.名称=c.名称
------解决方案--------------------
select 名称,
sum( bnum ) as b表总数量,
sum( cnum ) as c表总数量
from (
select a.名称, isnull(b.数量, 0) as bnum, isnull(c.数量, 0 ) as cnum
from a left jion b on b.名称 = a.名称
left jion c on c.名称 = a.名称 ) temp_t
group by 名称