gpt4 book ai didi

MYSQL 选择其中 SUM()

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:24 25 4
gpt4 key购买 nike

我想做的是查看是否有与工单关联的 Material 。所以我要加入工单 Material 表,按“工单”对其进行分组,然后使用 sum() 来查找与工单关联的总数量。唯一与数量有关的是它是否大于 0。如果它大于 0,我希望它出现在我的结果中,如果不是,我不希望它出现在我的结果中。

                SELECT `work_order`.`PO`
,`work_order`.`Work Order`
,`work_order`.`Part`
,`work_order`.`Revision`
,`work_order`.`Description`
,`work_order`.`Drawing`
,`work_order`.`Quantity`
,`work_order`.`CSM`
FROM `work_order`
LEFT JOIN `wo_material`
ON `work_order`.`Work Order`=`wo_material`.`WO`
WHERE `work_order`.`CSM` OR IFNULL(SUM(IFNULL(`wo_material`.`Quantity`,0)),0)
GROUP BY `work_order`.`Work Order`

错误是#1111 - 组函数的使用无效。如果我将 WHERE 行更改为

WHERE `work_order`.`CSM`

查询没有错误,但我的结果不正确。

在 work_order 上工作订单是主要的。

在 wo_material 上,WO 不是主要的或唯一的,它有另一列 RN 是主要的。

这只是一个查询,不是一个过程。

MySQL 版本 5.6.2

最佳答案

使用 having 子句删除数量为零的行

           SELECT `work_order`.`PO`
,`work_order`.`Work Order`
,`work_order`.`Part`
,`work_order`.`Revision`
,`work_order`.`Description`
,`work_order`.`Drawing`
,`work_order`.`Quantity`
,`work_order`.`CSM`
FROM `work_order`
LEFT JOIN `wo_material`
ON `work_order`.`Work Order`=`wo_material`.`WO`
GROUP BY `work_order`.`Work Order`
HAVING SUM(IFNULL(`wo_material`.`Quantity`,0)) > 0

关于MYSQL 选择其中 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com