设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 全连接数据 不能完全出来的问题!请教大神,谢谢!

[复制链接]
跳转到指定楼层
1#
发表于 2021-4-15 16:16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图1

图2


图1是表,图2是查询,图1的数据在图2不能显示,请大神赐教,我做的是全连接,但是不能显示。

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2021-4-15 23:03:22 | 只看该作者
是不是这个:
SELECT tmp.合同编号, Count(tmp.销项发票汇总) AS 销项发票汇总之计算, Sum(tmp.销项发票次数) AS 销项发票次数之总计, Sum(tmp.进项发票汇总) AS 进项发票汇总之总计, Sum(tmp.进项发票次数) AS 进项发票次数之总计
FROM (SELECT Q_销项发票汇总.合同编号, Q_销项发票汇总.销项发票汇总, Q_销项发票汇总.销项发票次数, 0 as 进项发票汇总, 0 as 进项发票次数
FROM Q_销项发票汇总

UNION SELECT 合同编号, 0 as 销项发票汇总, 0 as 销项发票次数, Q_进项发票汇总.进项发票汇总, Q_进项发票汇总.进项发票次数
FROM  Q_进项发票汇总 )  AS tmp
GROUP BY tmp.合同编号;
3#
发表于 2021-4-17 01:41:57 | 只看该作者
按我的理解,全连接就是求两个表(或者查询)的并集。
在解释这个问题之前,先说一个公理:
如果AB(包含于),那么A∪B=B(并)(如果数学没过关,请自行借一本高一课本来看看)。

一旦出现上述情况,则不应该用全连接。

而楼主的数据源里,而“Q_销项发票汇总”和“Q_进项发票汇总”的合同编号分别相当于上述的A、B集。全连接的结果应该只剩一个B集。具体请参考附件中“左连接”和“右连接”两个查询。

但楼主的结果是:“Q_进项发票汇总”和“Q_销项发票汇总”都出现了,为什么呢?那是因为把其他字段(比如,发票金额)也视为集合的一部分了。因此,只要还用全连接的写法,两边的关联字段不完全一致,必然会出现个别为空的字段。——不知道这样解释,楼主是否理解了。

说完问题,接下来就该说解决方案了。事实上,解决方案很简单,就是把所有合同编号列出来,根据通过IIF函数,设置条件统计即可。详见“结果表”。这里就不细说了。值得注意的是,统计次数用sum来代替count,是为了避免同一合同编号既有进项又有销项的情况。

最后说一句,楼上是从另一个角度上来解决这个问题:将两个查询视为无交集的两个集合,通过联合查询,并集自然就迎刃而解了。美中不足的是,嵌套子查询的写法,新手可能不容易理解(这里只是站在新手的立场上,如有冒犯还望海涵)。

本帖子中包含更多资源

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

x

评分

参与人数 1经验 +9 收起 理由
ly + 9 最喜欢大神的解答,有理有据!赞

查看全部评分

4#
 楼主| 发表于 2021-4-20 21:44:56 | 只看该作者
roych 发表于 2021-4-17 01:41
按我的理解,全连接就是求两个表(或者查询)的并集。
在解释这个问题之前,先说一个公理:
如果A⊂ ...

感谢大神的回复,前两天在忙,没有及时回复,我弄了半天,初学,很多东西不是很懂,谢谢讲解
5#
 楼主| 发表于 2021-4-20 22:16:24 | 只看该作者
aslxt 发表于 2021-4-15 23:03
是不是这个:
SELECT tmp.合同编号, Count(tmp.销项发票汇总) AS 销项发票汇总之计算, Sum(tmp.销项发票次 ...

谢谢大神回复,还是看不懂,对代码这种不是很明白
6#
发表于 2021-4-23 07:14:56 | 只看该作者
玻璃球 发表于 2021-4-20 22:16
谢谢大神回复,还是看不懂,对代码这种不是很明白

查询的语句啊,就是查询的SQL视图所看到的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 23:23 , Processed in 0.109752 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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