Foxtable(狐表)用户栏目专家坐堂 → sql union 合并问题


  共有1983人关注过本帖树形打印复制链接

主题:sql union 合并问题

美女呀,离线,留言给我吧!
Springamy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
sql union 合并问题  发帖心情 Post By:2017/7/18 16:35:00 [只看该作者]

问题如图: 出库的数据没有减掉,而是合并进去了,多了4条数据,请问减去出库那句代码哪里错了?

select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,s um(数量) as 条码数量 f rom 期初表 where qci d = 5 gro up by _Identify,qcid,入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 un ion all select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,su m(数量) as 条码数量 f rom (select * fr om 入库条码明细) as a le ft join 入库表 on a.rkid = 入库表._identify where 入库日期 >'3/31/2017'and 入库日期<='6/30/2017' group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all select 出库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,-数量 fr om (select * f rom 出库条码明细) as a le ft joi n 出库表 on a.ckid = 出库表._identify where 出库日期  <='6/30/2017'And 出库日期 > '6/01/2017'

 


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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/18 17:30:00 [只看该作者]

每一句sql语句,单独测试,看看哪里有问题。

 

看不懂你的逻辑,你理清你的逻辑了吗?具体例子发上来测试。


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
谢谢,已经弄好了,还出现了另一个问题  发帖心情 Post By:2017/7/18 18:14:00 [只看该作者]

 报错,布尔类型跟日期 中间有个 <= ,可是我没有找到阿

 

Else ' H > 0 不是第一个期初表
            If dt2.DataRows.Count > 0 Then '期初表有数据
                Dim y As Integer = h - 1
                Dim dr As DataRow = dt.DataRows(h)  '当前期初表期初表
                Dim dr2 As DataRow = dt.DataRows(y) '当前期初表的上一个期初表
                Dim d As Date
                Do While  dr2("期初日期") < d <= qc  'd在上个期初日期和当前期初日期之间,以d为条件查找入库出库数据,计算当前期初表
                    s = "select * fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码, s um(条码数量) as 库存 fr om (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,su m(数量) as 条码数量 fr om 期初表 where qcid = " & dr2("_Identify") & "group by _Identify,qcid,入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码 uni on all Select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,su m(数量) As 条码数量 f rom (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 * fro m 出库条码明细) As a le ft join 出库表 on a.ckid = 出库表._identify where 出库日期  <='" & qc & "'And 出库日期 > '" & dr2("期初日期") & "') As c group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码) As e where 库存 > 0"
                    cmd.CommandText = s
                    Dim dt3 As DataTable = cmd.ExecuteReader
                    If dt3.DataRows.Count > 0 Then
                        For n As Integer = 0 To dt3.DataRows.Count - 1
                            Dim dr3 As DataRow = dt3.DataRows(n)
                            s = "in sert in to 期初表(qcid,仓库地点,产品线,库存类型,仓库属性,条码,BOM编码,产品型号,数量,采购合同号,入库日期) values (" & dr("_Identify") &  ",'" & dr3("仓库地点")  & "','" & dr3("产品线")  &  "','"  &  dr3("库存类型")  &  "','"  & dr3("仓库属性")  &  "','"  & dr3("条码")  &  "','"  & dr3("BOM编码")  &  "','"  & dr3("产品型号")  &  "'," & dr3("数量") &  ",'"  & dr3("采购合同号")  &  "','"  & dr3("入库日期")  & "' )"
                        Next
                    End If
                Loop
            End If
        End If

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/18 20:00:00 [只看该作者]

Do While  dr2("期初日期") < d andalso d <= qc 

 回到顶部