ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 325|回复: 4

[求助] 求助:查询结果出错,找不到原因。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-30 10:49 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师:为何查询的结果与原表里的实际数据不一样呢?下图红框处应该是60,结果查询得到的是120,翻了一倍。

1672368226490.png

原表:
1、入库表
1672368299279.png

2、出库表
1672368350033.png

Access文件如下:


00 - 副本.rar

137.69 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2022-12-30 12:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png
要分开写,聚合出错了




SELECT 物料表.*, qry出.出, qry入.入
FROM (物料表 LEFT JOIN qry出 ON 物料表.物料编码 = qry出.物料) LEFT JOIN qry入 ON 物料表.物料编码 = qry入.物料;



评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-30 14:12 | 显示全部楼层
本帖最后由 夏天的风shh4695 于 2022-12-30 14:28 编辑
rendiule01 发表于 2022-12-30 12:23
要分开写,聚合出错了

感谢老师解答!有两个问题还想请教下:
1、老师是不是分别吧入库、出库做了两个聚合查询,作为中间查询?我照着这个思路得到了正确的结果。
2、为何我第一次做的结果会出错呢?哪里有问题?还请老师指点迷津。是否是因为原始入库表里这个出错的物料有3行,所以在聚合出库的时候,也错误的吧出库当做有3行? 我试着在入库添加一行数据,发现出库真的变为了3倍,也就是180。这是什么原因呢?附图如下:
第一次的sql如下:  
SELECT a.物料编码, a.物料名称,Sum(b.入库数量) AS 入,sum(c.出库数量) AS 出
FROM (物料表 a LEFT JOIN 物料入库单明细 b ON a.物料编码 = b.物料) LEFT JOIN 物料出库单明细 c  ON a.物料编码 = c.物料
GROUP BY a.物料编码, a.物料名称;


查询结果:增加一行入库后的查询结果,出库合计变成了3倍。
1672381508296.png

原表:
1、入库:蓝色为新增的一行。
1672381570851.png

2、出库:未变。
1672381616746.png

TA的精华主题

TA的得分主题

发表于 2022-12-30 14:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
夏天的风shh4695 发表于 2022-12-30 14:12
感谢老师解答!有两个问题还想请教下:
1、老师是不是分别吧入库、出库做了两个聚合查询,作为中间查询 ...

id 5,7出库重复了2次,直接连接会重复计算。


不用中间qry,需要union all后group,不需要join

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-30 14:55 | 显示全部楼层
zpy2 发表于 2022-12-30 14:29
id 5,7出库重复了2次,直接连接会重复计算。

感谢老师回复!老师的意思是否是这样:
1、做一个联合查询,sql如下:
select 物料,入库数量 as 数量,"入库" as 类别 from 物料入库单明细
UNION ALL
select 物料,出库数量 as 数量,"出库" as 类别 from 物料出库单明细;

联合查询结果如下:

1672382991469.png


2、根据第一步的联合查询,连接物料表,做一个交叉表查询。如下图:
1672383113208.png

这样结果也是正确的。

与出入库分开做两个聚合查询相比,哪一个更好呢?聚合查询与联合查询谁更优?另外入库的5、7重复,在聚合出库的时候,会重复聚合,这个更深层次的原因是什么?还请老师不吝赐教。

image.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 13:09 , Processed in 0.040500 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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