Foxtable(狐表)用户栏目专家坐堂 → 全连接问题


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

主题:全连接问题

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


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

问题如下: 以下sql语句得到的数据 并不完全,在逻辑库存中有而库存中没有的数据完全显示不出来,请问,我是不是需要用以下sql 作为一个临时表

然后再跟逻辑库存full join 一次?

select 仓库地点,产品线,库存类型,仓库属性,库存表.条码,BOM编码,isnull(计算数量,0) as 计算数量,isnull(数量,0) as 条码数量,isnull(计算数量,0)-isnull(数量,0)as 差异数量,采购合同号,入库日期 fro m 库存表 full join (select 条码,条码数量 as 计算数量 fro m (select 条码,sum(数量) as 条码数量 fro m (select 条码,sum(数量)as 数量 fro m (select 条码,sum(数量) as 数量 fro m 期初表 where qcid = 10 group by 条码 un ion all select 条码,sum(数量) as 数量 fro m (select 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码,sum(数量) as 数量 fro m (select * fro m 入库条码明细) as a left join 入库表 on a.rkid = 入库表._identify where 入库日期 >'6/30/2017'and 入库日期<='7/24/2017' group by 入库日期,采购合同号,产品线,库存类型,仓库属性,BOM编码,产品型号,仓库地点,条码) as b group by 条码) as c group by 条码 un ion all select 条码,-数量 fro m (select * fr om 出库条码明细) as f left join 出库表 on f.ckid = 出库表._identify where 出库日期  <='7/24/2017'And 出库日期 > '6/30/2017') as g group by 条码) as h where 条码数量 <> 0) as i on 库存表.条码 = i.条码 where 数量 > 0

 


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


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


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

逻辑库存表,可以加上其余列的,如

 

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

 

改成

 

select 条码,sum(数量) as 数量,max(仓库地点) as 仓库, max(产品线) as 产品线 from 期初表 where qcid = 10 group by 条码

 

最后获取值的时候,可以对比库存、逻辑库存,看哪个有值,就取哪一个。

 

再有就是,你逻辑有问题,你的库存表,理应包含所有的库存信息,期初、入库、出库有的,都添加到库存表去,才对。


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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
有点看不懂,如图  发帖心情 Post By:2017/7/25 14:10:00 [只看该作者]

最后获取值的时候,可以对比库存、逻辑库存,看哪个有值,就取哪一个。甜大,这一段我有点看不懂,得出的数据

怎么对比?

 

我解释下我的库存问题,我是故意在逻辑库存和实际库存中各添加一条数据来测试的,实际上,逻辑库存跟实际库存的

数据是一样的。这样做是因为在实际中录入数据的时候可能突然断电或者断网 等各种原因导致数据只存在入库表中

还没有来得及到库存表中,或者别的原因导致逻辑库存中的数据不见了,而实际库存的还在等等  各种原因。。。。


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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

请导出部分数据做测试

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


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

以下是引用Springamy在2017/7/25 14:10:00的发言:

最后获取值的时候,可以对比库存、逻辑库存,看哪个有值,就取哪一个。甜大,这一段我有点看不懂,得出的数据

怎么对比?

 

 

比如,本来写的 select 仓库地点,产品线,库存类型,仓库属性

 

理应改成 select isnull(库存表.仓库地点, i.仓库地点), isnull(库存表.产品线, i.仓库地点), isnull(库存表.库存类型, i.库存类型)

 


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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
换了个算法,问题如下  发帖心情 Post By:2017/7/25 18:37:00 [只看该作者]

蓝大,我换了个算法:

两个表: 计算库存,实际库存

循环遍历实际库存的时候执行正确,

到循环计算库存,要把计算库存中有,而实际库存中没有的数据找出来添加到

实际库存中,然后计算差异库存

现在是遍历dt3 计算库存的代码出错,可以帮我看看错在哪里吗?


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

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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
我明白了,谢谢  发帖心情 Post By:2017/7/25 18:38:00 [只看该作者]

谢谢

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


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
ps:我是明白5楼甜大说的内容了,遍历问题没有解决  发帖心情 Post By:2017/7/25 18:41:00 [只看该作者]

遍历没有解决

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

dim dt2 as datatable = cmd.ExecuteReader(true)

......

dt2.Save
tables().datasource = dt2

最后datatables().load是干嘛用的?

 回到顶部