-- 作者:Springamy
-- 发布时间:2017/7/19 14:49:00
-- union sql 语句的问题
以下sql 用实例日期数据,可以正确的把数据查找出来,如图一,但是一旦调用函数,用函数中的sql,如图3,
有出库数据的期初表,生成的数据有上个期初表的跟当前期初表的
,也就是说调用一次函数,会生成2个期初表,前一个期初跟当前期初,条码的数量也变成2个了,
是我sql 本身错了,还是 函数sql中代表上个期初和当前期初的值错了,dr2("期初日期"),qc 等
select * fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码, sum(条码数量) as 数量 fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,sum(数量) as 条码数量 fr om 期初表 where qcid = " & dr2("_Identify") & "group by _Identify,qcid,入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all Select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,sum(数量) As 条码数量 fro m (Select * fr om 入库条码明细) As a left join 入库表 on a.rkid = 入库表._identify where 入库日期 >\'" & dr2("期初日期") & "\'and 入库日期 <=\'" & qc & "\' group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all Select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,-数量 fr om (Select * fr om 出库条码明细) As a left join 出库表 on a.ckid = 出库表._identify where 出库日期<=\'" & qc & "\'And 出库日期 > \'" & dr2("期初日期") & "\') As c group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码) As e where 数量 > 0
示例:
select * f rom (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码, sum(条码数量) as 库存 fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,sum(数量) as 条码数量 fr om 期初表 where qcid = 7 group by _Identify,qcid,入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 un ion all select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,sum(数量) as 条码数量 fr om (select * fr om 入库条码明细) as a left join 入库表 on a.rkid = 入库表._identify where 入库日期 >\'3/31/2017\'and 入库日期<=\'4/30/2017\' group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,-数量 fro m (select * f rom 出库条码明细) as a left join 出库表 on a.ckid = 出库表._identify where 出库日期 <=\'4/30/2017\'And 出库日期 > \'3/31/2017\') as c group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码) as e where 库存 > 0 此主题相关图片如下:1.png
此主题相关图片如下:2.png
此主题相关图片如下:3.png
|