mysql - 带有 subQ 的 MYSQL 查询
问题描述
我正在尝试获取列的所有总和,因为我正在这样做我想加入已发货的文件,所以我只获取尚未发货的当前订单的总和。从我的努力中,我不断得到一个结果,其中所有列的计算量都是错误的。先感谢您。
我相信我需要写一个 subQ,但我在尝试到达那里时遇到了问题。如果我删除 JOIN,结果是完美的,没有问题,但我需要加入,所以我只计算未发货的项目。我相信它从连接表中提取了一些其他记录。先感谢您。
SELECT XX.order_num, XX.shipped, PP.order_num AS JON, PP.part_num AS JPT, SUM(PP.total_qty) AS QTY, SUM(PP.work_time) AS WT,SUM(PP.setup_time) AS ST,SUM(PP.scrap) AS SC
FROM PP
JOIN XX
ON XX.order_num = PP.order_num
WHERE PP.department='RIBBON'
AND PP.ribbon_type='CRIMPING' AND XX.shipped IS NULL
GROUP BY part_num
ORDER BY PP.order_num DESC
我得到这个:
so185702 6609628 8,120 92.67 HRS 1.92 HRS 0
什么时候应该这样读:
so185702 6609628 760 545 15 0
我只需要编写 subQ 的帮助,我还是个初学者。谢谢你。
解决方案
当您将普通列与聚合函数(如 sum)混合时,您需要GROUP BY
-clause 列出所有SELECT
不具有聚合函数的列。在您的查询中,前四列:
SELECT
XX.order_num,
XX.shipped,
PP.order_num AS JON,
PP.part_num AS JPT,
SUM(PP.total_qty) AS QTY,
SUM(PP.work_time) AS WT,
SUM(PP.setup_time) AS ST,
SUM(PP.scrap) AS SC
FROM PP
JOIN XX ON XX.order_num = PP.order_num
WHERE PP.department='RIBBON' AND PP.ribbon_type='CRIMPING' AND XX.shipped IS NULL
GROUP BY XX.order_num, XX.shipped, PP.order_num, PP.part_num
ORDER BY PP.order_num DESC
推荐阅读
- swift - 如何使用 DiskArbitration 或其他框架在 macOS 上获取磁盘类型(SSD、HDD、Optical)
- php - 即使在设置命名空间之后,Laravel 8 中也没有为 laravel 集体定义 Action Controller@store,除非我使用完整路由
- java - 如何检查和使用来自不同方法的输入
- javascript - 将 HTML 表格保存到仅适用于前 102 个元素的数组中
- reactjs - Form.IO 表单生成器样式
- r - 将惩罚函数应用于具有 R 边界的非线性最小二乘估计收敛 - 包 minpack.lm
- php - 使用 echo 定位 PHP 生成的 HTML ID
- c++ - 我对范围和在 C++ 中声明变量有疑问
- swift - 我正在使用 SpriteKit 制作游戏,但我的视图只占据了屏幕上看似安全的区域。如何扩展此视图?
- python - 有没有办法在 python 中创建漂亮的嵌套表?