首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如用SQL话语进行多表关联汇总

2012-12-30 
如用SQL语句进行多表关联汇总A表ID  名称   1c2    d    3    e    4    f    B表ID名称数量1c12d13e14e15

如用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语句达到目标
[解决办法]

select a.名称,sum(a.数量) as A表总数量,isnull(sum(c.数量),0) as c表总数量
from a left join c on a.名称=c.名称

------解决方案--------------------


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 名称

热点排行