繁体   English   中英

MYSQL选择SUM()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM