当前位置: 代码迷 >> Sql Server >> 一个多表汇总的有关问题
  详细解决方案

一个多表汇总的有关问题

热度:104   发布时间:2016-04-27 12:50:18.0
求助一个多表汇总的问题
问题如下:
有A B C D 4个表 结构相同

字段如下 字段全部是文本型

如表A

货号 规格1的数量 规格2的数量 规格3的数量 数量合计 

Q111 3 2 3 8
Q222 3 1 5 9
Q333 1 0 1 2


要求将 A B C 的汇总结果存到表D 中

即 表ABC的规格1的合计存入表D规格1中


------解决方案--------------------
四个表名依次为atb1,atb2,atb3,atb4
SQL code
SELECT dbo.atb1.A, CAST(dbo.atb1.B AS int) + CAST(dbo.atb2.B AS int) AS B,       CAST(dbo.atb1.C AS int) + CAST(dbo.atb2.C AS int) AS C, CAST(dbo.atb1.D AS int)       + CAST(dbo.atb2.D AS int) AS D INTO TMPTABFROM dbo.atb1 INNER JOIN      dbo.atb2 ON dbo.atb1.A = dbo.atb2.ASELECT dbo.atb3.A, CAST(dbo.atb3.B AS int) + CAST(dbo.tmptab.B AS int) AS B,       CAST(dbo.atb3.C AS int) + CAST(dbo.tmptab.C AS int) AS C, CAST(dbo.atb3.D AS int)       + CAST(dbo.tmptab.D AS int) AS D INTO atb4FROM dbo.atb3 INNER JOIN      dbo.tmptab ON dbo.atb3.A = dbo.tmptab.Adrop table tmptab
------解决方案--------------------
SQL code
insert into D(货号,规格1的数量,规格2的数量,规格3的数量,数量合计)select   货号,  ltrim(sum(cast(规格1的数量 as int))),  ltrim(sum(cast(规格2的数量 as int))),  ltrim(sum(cast(规格3的数量 as int))),   ltrim(sum(cast(数量合计 as int)))from(select * from A union all select * from B union all select * from C) tgroup by 货号
  相关解决方案