Office中国论坛/Access中国论坛

标题: 求助:2张数据表对比,最终显示差异?[已解决] [打印本页]

作者: 宏魔法师    时间: 2010-9-24 17:40
标题: 求助:2张数据表对比,最终显示差异?[已解决]
本帖最后由 宏魔法师 于 2010-9-24 21:53 编辑

问题:有2张数据表,分别是系统的仓库产品库存数表和 实际盘点的库存数表
[attach]43570[/attach]
需要比对这两张的差异,最终得出下面这样的结果
[attach]43569[/attach]

其实这个问题关键另我困惑的是  产品是有重复的,不唯一,因为要对应不同的仓库位。还有可能同一个仓库位有不同的产品,我不知道该如何查询得出我想需要的最终结果,请各位高手看看。
[attach]43571[/attach]

作者: ui    时间: 2010-9-24 19:48
要两张表 按 产品+仓库位 进行关联. 在查询中设置关联字段为 产品+仓库位
作者: 宏魔法师    时间: 2010-9-24 20:57
就是不清楚怎么可以 【产品+仓库位】进行关联
作者: tmtony    时间: 2010-9-24 20:59
在查询设计窗体中,先添加相应的两个表,然后选择一个表的字段,然后拖到另一个表上对应的字段
作者: liaohk    时间: 2010-9-24 21:04
首先:作出唯一条件(字段相加)然后用查询来操作。IF(库存数-实盘数#0,"相符","差异")
作者: aslxt    时间: 2010-9-24 21:17
参见附件中的查询

作者: 宏魔法师    时间: 2010-9-24 21:20
是不是下面这样啊!
[attach]43577[/attach]
这样就是全部都显示啊!,我想要的是差异部分。

作者: aslxt    时间: 2010-9-24 21:28
差不多,看我的附件
作者: 宏魔法师    时间: 2010-9-24 21:30
感谢aslxt ,不过我还有个疑问,虽然我还没完全看明白你的SQL语句,UNION后面应是指的盘点表比系统表多出的数据吧。
但如果系统表也有盘点表没有的数据怎么办呢,是否还要多加一句UNION呢?
作者: aslxt    时间: 2010-9-24 21:39
回复 宏魔法师 的帖子
不错,UNION后面应是指的盘点表比系统表多出的数据
系统表也有盘点表没有的数据怎么办呢,修改如下(只是增加zn函数就行了):
SELECT tbl系统表.产品名, tbl系统表.仓库位, tbl盘点表.数量 AS 盘点数量, tbl系统表.数量 AS 系统数量, nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0) AS 差异 ...


   
作者: aslxt    时间: 2010-9-24 21:41
原来:[tbl系统表].[数量]-[tbl盘点表].[数量] AS 差异
现在:nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0) AS 差异
作者: aslxt    时间: 2010-9-24 21:47
本帖最后由 aslxt 于 2010-9-24 21:49 编辑

SELECT tbl系统表.产品名, tbl系统表.仓库位, tbl盘点表.数量 as 盘点数量, tbl系统表.数量 as 系统数量, nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0) AS 差异
FROM tbl盘点表 RIGHT JOIN tbl系统表 ON (tbl盘点表.仓库位 = tbl系统表.仓库位) AND (tbl盘点表.产品名 = tbl系统表.产品名)
WHERE (((nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0))<>0))
UNION SELECT tbl盘点表.产品名, tbl盘点表.仓库位, tbl盘点表.数量,0 AS SL1,tbl盘点表.数量*-1
FROM tbl盘点表 LEFT JOIN tbl系统表 ON tbl盘点表.仓库位 = tbl系统表.仓库位
WHERE (((tbl系统表.仓库位) Is Null));
作者: 宏魔法师    时间: 2010-9-24 21:53
哈哈,完美!太感谢了aslxt
作者: aslxt    时间: 2010-9-24 22:34
哈哈,完美!太感谢了aslxt
宏魔法师 发表于 2010-9-24 21:53



能够帮助别人,是人生快事!

作者: ycxchen    时间: 2010-9-25 09:21
谢谢aslxt,我也学习下!
作者: bbsliu    时间: 2010-10-23 09:19
学习了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3