读书人

如用SQL语句进行多表关联汇总,该怎么解

发布时间: 2012-01-23 21:57:28 作者: rapoo

如用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   Aleft join  (select 名称,sum(数量) as 数量 from B group by 名称) bon  a.名称=b.名称left join   (select 名称,sum(数量) as 数量 from C group by 名称) con  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 名称

读书人网 >SQL Server

热点推荐