以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  union 结果集问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103928)

--  作者:Springamy
--  发布时间:2017/7/19 19:35:00
--  union 结果集问题

如图:下面的sql 的出来的结果有的减掉出库了有的没有减掉,原因是不是 先执行里面的入库 - 出库,得出的数据有负数,因为有的数据

是在期初表中减掉的  然后入库 - 出库 = 数据 跟 期初表 un ion all, 没有减掉数据?

是不是要先执行 期初 + 入库(写在最里面),然后 - 出库 (写在外边),才能得出正确的数据

 

select * fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码, su m(条码数量) as 库存 fro m (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,su m(数量) as 条码数量 fro m 期初表 wh ere qcid = 10 gro up by _Identify,qcid,入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 un ion all select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,su m(数量) as 条码数量 fr om (select * fr om 入库条码明细) as a left join 入库表 on a.rkid = 入库表._identify wh ere 入库日期 >\'6/30/2017\'and 入库日期<=\'7/19/2017\' grou p by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,-数量 fro m (select * fro m 出库条码明细) as a left join 出库表 on a.ckid = 出库表._identify wh ere 出库日期  <=\'7/19/2017\'And 出库日期 > \'6/30/2017\') as c gro up by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码) as e

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/7/19 19:58:00
--  

1、union all 的时候,不需要根据那么多列分组,直接根据条码分组即可。 如

 

select 条码,sum(数量) as 条码数量 from 期初表 where qcid = 10 group by 条码

 

2、最后如果需要条码的各个信息,可以最后连接其余的表进行查询。