MYSQL 选择其中 SUM()

标签 mysql database

我想做的是查看是否有与工单关联的 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/

相关文章:

asp.net - 使用 MySql 中的存储过程更新 2 个表

sql - 文本文件的 Oracle 数据类型?

database - Laravel 4 多对多与 Eloquent 和复选框

android - 将部分数据库模型从服务器同步到客户端

php - mysql php 语句

mysql - drush sql-sync 上的访问被拒绝(远程用户和数据库用户不同)

mysql - 如何在不同的数据库中使用带有外键的 django 模型?

sql - MySQL View 如何工作?

database - 订单/发票/支付数据库建模

sql-server - R:使用 ODBC 和 SQL Server 读取性能非常慢