设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 如何进行2表之间全面的对比

[复制链接]
跳转到指定楼层
1#
发表于 2016-1-6 23:51:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有2表,一库存表,一盘点表,2表字段(货品编码,数量),属性、格式都相同,现在需要对2表进行对比,问题在于,在实际盘点的过程中,有的时候是库存表货品有数量,但实际盘点表没有,有的时候是盘点表上有数量,但库存表上没有,在这种情况下,如何将2表数量都全部显示出来?我试了内连接,左连接,右连接,都不对。请教,这个如何做?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-1-7 01:03:10 | 只看该作者
库存货品        库存数量        盘点数量
651023          12                11
652219          11                13
654109          7                0
638876          3                0
663210          0                1
562980          0                1

希望达到这样的效果。
3#
发表于 2016-1-7 08:25:30 | 只看该作者
Select A.货品编码,库存表.数量 as 库存量,盘点表.数量 as 盘点量 From
((Select 库存表.货品编码 From 库存表  
union
Select 盘点表.货品编码 From 盘点表) as A
Left join 库存表 On A.货品编码=库存表.货品编码)  
Left join 盘点表 On A.货品编码=盘点表.货品编码;
4#
发表于 2016-1-7 09:20:12 | 只看该作者
又是一个懒人。。。。搜索下 “表 比较”就可以看到了:
http://www.office-cn.net/thread-93141-1-1.html
5#
 楼主| 发表于 2016-1-7 12:27:20 | 只看该作者
roych 发表于 2016-1-7 09:20
又是一个懒人。。。。搜索下 “表 比较”就可以看到了:
http://www.office-cn.net/thread-93141-1-1.html

恕我直言,您根本没看清我的问题。您推荐的这个东西也不能用,操作复杂,而且数据量一大就出问题,更讨厌的是,它压根没法找出只存在于其中一表的数据。不过还是谢谢您。
6#
发表于 2016-1-7 14:02:15 | 只看该作者
不就是全联接么?
先左联接再联合右联接就好了。
  1. select *
  2. from a left join b on a.id=b.id
  3. union all
  4. select *
  5. from a right join b on a.id=b.id
  6. where a.id is null
复制代码
7#
 楼主| 发表于 2016-1-7 14:14:40 | 只看该作者
roych 发表于 2016-1-7 14:02
不就是全联接么?
先左联接再联合右联接就好了。

再次感谢您的回复,不过请问您真的看明白别人需要什么了么?请您仔细看看并检验一次您自己的代码。
8#
发表于 2016-1-7 16:14:43 | 只看该作者
arvinwill 发表于 2016-1-7 14:14
再次感谢您的回复,不过请问您真的看明白别人需要什么了么?请您仔细看看并检验一次您自己的代码。

左表:
ID 字段1
1     A
2     B
3     C
右表
ID 字段1
3    C
4    D
5    E
全联接结果:
ID 字段1
1     A
2     B
3     C
4     D
5     E
你的表里不一定有ID,但应该总有一些共有的字段。如果仍然不清楚什么叫全联接,麻烦自行百度下。尽管Access里没有全联接(Full Join),但不代表做不出全联接的效果。
看不懂SQL语句,我们不怪你。问题是,你有动手去试过了吗?
9#
 楼主| 发表于 2016-1-7 16:48:13 | 只看该作者
roych 发表于 2016-1-7 16:14
左表:
ID 字段1
1     A

既然您这么有自信,那么请把我被你删除的帖子里的access数据库,用您上面的代码来做一边,看能不能出现您自信满满认为能满足我要的那种效果?
附件我已放上来,需求我在下面再强调一遍,而且是用再通俗不过的语言,相信不管懂不懂sql的人都能看明白。
如果不行,还是那句话,先别居高临下,请先看清楚别人需要什么,好吗?谢谢。

===============================================================================

数据库在附件。
        说明:
1、库存表中有的货品编码有数量,而同样的货品编码在盘点表中可能数量为0;
2、盘点表中有的货品编码有数量,而同样的货品编码在库存表中可能数量为0;
3、库存表中存在盘点表中没有的货品编码;
4、盘点表中存在库存表中没有的货品编码;
5、今后在库存表和盘点表里新增的数据,依然可能出现以上4种情况;
5、希望能达到附件数据库中 “2表对比后希望出现的界面” 那样的效果,即:货品编码不管是哪个表里的,都在左边,货品编码不重复行,并且库存数量显示一列,盘点数量显示一列;
        烦请高手帮忙解决,在此先谢过。




本帖子中包含更多资源

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

x
10#
发表于 2016-1-7 17:42:40 | 只看该作者
不就这个样子么?你觉得版主都是灌水灌出来的么?

如果说有什么差异,顶多就少了你的自动编号字段和排序对不上。



本帖子中包含更多资源

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

x

点评

虽然很感谢您最后在另一个帖子中给出的代码,但我依然坚持,核心部分或许一样,但其他细节和效果却很不相同,我的需求就是指明要求细节,细节不行就不实用于业务 。当然,我以后发帖也会尽量将细节讲的细而再细。  发表于 2016-1-7 19:22
你觉得呢?当然,语句略有区别,因为需要把库存数量跟盘点数量分开放,但是核心语句是一样的。 慢慢思考吧。如果懒得思考就去下载附件,我发了一个新帖。 还是那一句,别什么都没试过就断言  发表于 2016-1-7 18:49
请问,这是您用在6楼告诉大家的代码做出来的么?  发表于 2016-1-7 18:32
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 20:51 , Processed in 0.114670 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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