设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2210|回复: 7
打印 上一主题 下一主题

[查询] 关于用部分物料号查询所有库存及开放订单汇总问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-18 17:45:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 imono 于 2012-8-18 18:59 编辑

各位前辈,小弟初学,目前碰到一个查询的问题,苦思不得其解,故来此发帖寻求帮助

数据库中有3张表,分别是物料号、开放订单、库存
其中物料号表中只包含其中一个类别的物料号信息,而订单表和库存表中为所有开放订单和库存信息,因此三张表中任意两张表均为交集,并且订单表和库存表中同一个物料号会出现多次
现在的问题是,若我同时用物料号表对库存和订单做查询,那么若订单表中某物料号出现多次,则库存表中该物料号也会重复出现,这就导致总计的数据错误

解决这个问题的笨方法是有的,就是库存和订单各查询一次,然后两个查询再合到一起即可,但由于公司SAP系统中数据量很大,很多类别的数据无法全部导出,只能导出一部分,若每次都这样那么管理起来会非常麻烦

请问是否有简单的方法可以解决这个问题?

下图是全部查询的结果

下图是只查询库存的结果

下图是只查询订单的结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-8-18 21:40:24 | 只看该作者
本帖最后由 roych 于 2012-8-18 21:46 编辑

根据描述,个人觉得楼主可能还没有很好地把握好表之间的关系。
PO单和物料号应该是一对多的关系,物料编号中的物料号和其它两张表中的物料号都是一对多关系。因此,需要求得每个物料的损耗情况,应当以物料表为主表,其他表为从表。查询设计如下:

除非为了汇总,否则个人建议还是按物料号分组统计会好一些。对比了楼主的附件,数据一致。附件供参考:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2012-8-18 21:48:48 | 只看该作者
roych 发表于 2012-8-18 21:40
根据描述,个人觉得楼主可能还没有很好地把握好表之间的关系。
PO单和物料号应该是一对多的关系,物料编号 ...

多谢回复
我之前就是以物料号为主表,其他表为从表,但是仍然会出现查询结果不正确的情况,请问是否有什么办法避免这种情况?
4#
发表于 2012-8-18 22:08:15 | 只看该作者
物料号表中是否包含了所有的物料号?PO单或者进出仓单有木有哪个物料号是在物料号表中找不到的?
如果不存在这两个问题,那么就不存在查询不正确的情况。以物料号为主表,包含所有的订单的物料号记录,对物料号进行汇总则可以查出哪些物料用了多少,哪些没用过;同样地,对进出仓表进行上述的类似关联,同样可以检查出哪些进出仓多少。

我上面的关系表只是把这两者联系起来一并列举出来罢了。我还是前面那句话,应当以物料号作为主键来汇总,而不是以Type【因为Type不是主键,那么万一哪个物料号对应的是空值,如何处理?】。
5#
 楼主| 发表于 2012-8-18 22:35:54 | 只看该作者
roych 发表于 2012-8-18 22:08
物料号表中是否包含了所有的物料号?PO单或者进出仓单有木有哪个物料号是在物料号表中找不到的?
如果不存 ...

物料号表中只包含了一类物料,订单表和库存表中有很多是不在物料号表中的,而且同一物料号在订单表和库存表可能会存在多行记录,我想就是应为这两个原因导致结果不正确
6#
发表于 2012-8-18 22:59:57 | 只看该作者
同一物料号肯定会被用于多张订单或者多次进出仓的,这不是问题。问题的关键在于:
订单表和库存表中有很多是不在物料号表中的

从数据逻辑上来说,肯定是现有物料,才会有订单的。如果不存在这个物料,要么是入仓时没有录入,要么是转物料后数据没有更新;而订单上的物料和物料号表上对不上的情况,则必须控制好数据的有效性(例如,开PO单时用户只能从列表中选择)。因此数据检查很重要。
7#
 楼主| 发表于 2012-8-19 08:41:16 | 只看该作者
roych 发表于 2012-8-18 22:59
同一物料号肯定会被用于多张订单或者多次进出仓的,这不是问题。问题的关键在于:

从数据逻辑上来说,肯 ...

也就是说根本的原因是因为物料号表不全,部分订单和库存的物料号并不在物料号表中
但是我们公司有效的物料号有几万个,我只关注其中几个类别的物料号,我的根本目的就是以某个类别(不是全部)的物料号表为主表,得到这个类别的库存和开放订单(库存和开放订单是包含全部的),请问是否能够实现?
8#
 楼主| 发表于 2012-8-19 09:12:53 | 只看该作者
刚验证了一下,即使使用所有物料号为主表,只要库存表或订单表中某个物料号有多行,那么另一表中的库存(或订单)数量也会重复计算。例如某个物料号,库存表中只有一行数据,显示库存为10吨,但订单表中显示该物料有3个开放订单,此时汇总后该物料的库存就会重复出现3次,变成30吨
很不理解为啥会出现这种情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-28 03:00 , Processed in 0.120995 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表