当前位置: 代码迷 >> Sql Server >> 一条SQL语句查询多表相同字段的跟,结果分列显示,并且显示列名
  详细解决方案

一条SQL语句查询多表相同字段的跟,结果分列显示,并且显示列名

热度:88   发布时间:2016-04-24 10:19:47.0
一条SQL语句查询多表相同字段的和,结果分列显示,并且显示列名

insert into LH_SCZJ_DG(date,lh_lb,lh_fq,lh_ss)  select date ,lh_lb, sum(lh_fq) as lh_fq ,sum(lh_ss) as lh_ss  FROM LH_DG   WHERE date=convert(varchar(10),getdate() - 1,120)    AND  lh_lb IN ('一组' , '二组','后续','液封','批量','技术调整')  GROUP BY  lh_lb,date";

上述语句是一张表对字段分条件求和并添加到另一张表,现在是多张表对这些字段求和并添加到另一张表,用一条SQL语句实现,求大神指点。
------解决方案--------------------
多张表join起来再就和咯,最起码你要提供“多张表”是什么表,有哪些相关的列还有表之间的关系吧?不然怎么写?
------解决方案--------------------

--示例
insert into tb(a,b,c,d)
select a.a,sum(b.b),sum(c.c),sum(d.d)
from tb1 a,tb2 b,tb3 c,tb4 d
where a.id = b.id and a.id = c.id and a.id = d.id
group by a.a

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

insert into LH_SCZJ_DG(date,lh_lb,lh_fq,lh_ss)  
select date ,lh_lb, sum(lh_fq) as lh_fq ,sum(lh_ss) as lh_ss  
FROM (select * from LH_DG
      union all
      select * from [表名1]
      union all
      select * from [表名2]) t   
WHERE date=convert(varchar(10),getdate() - 1,120)    
AND  lh_lb IN ('一组' , '二组','后续','液封','批量','技术调整')  
GROUP BY  lh_lb,date


------解决方案--------------------
将多个表查询合并成一个表,再用sum求和咯。
  相关解决方案