设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4509|回复: 15
打印 上一主题 下一主题

[查询] 求助:2张数据表对比,最终显示差异?[已解决]

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-24 17:40:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 宏魔法师 于 2010-9-24 21:53 编辑

问题:有2张数据表,分别是系统的仓库产品库存数表和 实际盘点的库存数表

需要比对这两张的差异,最终得出下面这样的结果


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

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
16#
发表于 2010-10-23 09:19:47 | 只看该作者
学习了。
15#
发表于 2010-9-25 09:21:00 | 只看该作者
谢谢aslxt,我也学习下!
14#
发表于 2010-9-24 22:34:34 | 只看该作者
哈哈,完美!太感谢了aslxt
宏魔法师 发表于 2010-9-24 21:53



能够帮助别人,是人生快事!
13#
 楼主| 发表于 2010-9-24 21:53:04 | 只看该作者
哈哈,完美!太感谢了aslxt
12#
发表于 2010-9-24 21:47:49 | 只看该作者
本帖最后由 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));

本帖子中包含更多资源

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

x
11#
发表于 2010-9-24 21:41:00 | 只看该作者
原来:[tbl系统表].[数量]-[tbl盘点表].[数量] AS 差异
现在:nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0) AS 差异
10#
发表于 2010-9-24 21:39:59 | 只看该作者
回复 宏魔法师 的帖子
不错,UNION后面应是指的盘点表比系统表多出的数据
系统表也有盘点表没有的数据怎么办呢,修改如下(只是增加zn函数就行了):
SELECT tbl系统表.产品名, tbl系统表.仓库位, tbl盘点表.数量 AS 盘点数量, tbl系统表.数量 AS 系统数量, nz([tbl系统表].[数量],0)-nz([tbl盘点表].[数量],0) AS 差异 ...


   
9#
 楼主| 发表于 2010-9-24 21:30:19 | 只看该作者
感谢aslxt ,不过我还有个疑问,虽然我还没完全看明白你的SQL语句,UNION后面应是指的盘点表比系统表多出的数据吧。
但如果系统表也有盘点表没有的数据怎么办呢,是否还要多加一句UNION呢?
8#
发表于 2010-9-24 21:28:44 | 只看该作者
差不多,看我的附件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 09:47 , Processed in 0.092376 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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