ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

初学者请教:为何库存的查询不正确

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-5-17 13:40 | 显示全部楼层 |阅读模式
请高手帮忙看看,我设了一个查询-库存,但是查询出的数字,进货数量汇总和出货数量汇总为何不正确?
急,在线等。。。。。

进销存数据库.rar

23.37 KB, 下载次数: 15

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-17 14:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-5-17 15:39 | 显示全部楼层
  1. SELECT [a].产品名称, Sum([a].进货数量) AS 进货数量合计, Sum([a].出货数量) AS 出货数量合计, Sum([进货数量]-[出货数量]) AS 库存
  2. FROM (SELECT 产品.产品名称, Sum(进货明细表.进货数量) AS 进货数量,0 as 出货数量
  3. FROM 产品 INNER JOIN 进货明细表 ON 产品.产品ID = 进货明细表.产品
  4. GROUP BY 产品.产品名称
  5. UNION SELECT 产品.产品名称, 0 AS 进货数量,Sum(出货明细表.数量) AS 出货数量
  6. FROM 产品 INNER JOIN 出货明细表 ON 产品.产品ID = 出货明细表.产品
  7. GROUP BY 产品.产品名称) as a
  8. GROUP BY [a].产品名称;
复制代码

TA的精华主题

TA的得分主题

发表于 2012-5-17 16:10 | 显示全部楼层
不能这么做
SELECT 产品.产品ID, 出货明细表.出货单号, 进货明细表.进货单号
FROM (产品 LEFT JOIN 出货明细表 ON 产品.产品ID = 出货明细表.产品) LEFT JOIN 进货明细表 ON 产品.产品ID = 进货明细表.产品;
你把上述sql语句运行就知道有些进出货单号是重复计算了的

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-17 16:25 | 显示全部楼层
可以详细再解释一下吗,因为是初学者,还不太了解SQL语句

TA的精华主题

TA的得分主题

发表于 2012-5-17 16:37 | 显示全部楼层
SELECT T.产品名称, Sum(T.进货数量) AS 进货数量之合计, Sum(T.数量) AS 数量之合计, Sum(T.进货数量)-Sum(T.数量) AS 库存
FROM (SELECT 产品.产品名称, 0 AS 进货数量, 出货明细表.数量
FROM 产品 LEFT JOIN 出货明细表 ON 产品.产品ID = 出货明细表.产品
UNION ALL SELECT 产品.产品名称, 进货明细表.进货数量, 0 AS 数量
FROM 产品 LEFT JOIN 进货明细表 ON 产品.产品ID = 进货明细表.产品)  AS T
GROUP BY T.产品名称;

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-18 11:18 | 显示全部楼层
zxb7679 发表于 2012-5-17 16:37
SELECT T.产品名称, Sum(T.进货数量) AS 进货数量之合计, Sum(T.数量) AS 数量之合计, Sum(T.进货数量)-Sum ...

这样是可以的,但是TABLE T是怎么来的?

TA的精华主题

TA的得分主题

发表于 2012-5-18 14:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果你觉得一个查询不好 理解 就拆成两个
SELECT 产品.产品名称, 0 AS 进货数量, 出货明细表.数量
FROM 产品 LEFT JOIN 出货明细表 ON 产品.产品ID = 出货明细表.产品
UNION ALL SELECT 产品.产品名称, 进货明细表.进货数量, 0 AS 数量
FROM 产品 LEFT JOIN 进货明细表 ON 产品.产品ID = 进货明细表.产品;
这个就是T

TA的精华主题

TA的得分主题

发表于 2012-5-18 14:58 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-9 20:00 , Processed in 0.025562 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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