[英]MYSQL select where SUM()
我要尝试做的是查看是否有与工作订单相关的物料。 因此,我要加入工作订单物料表,按“工作订单”将其分组,然后使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.