MySQL - 使用分组条件查询

标签 mysql sql

enter image description here

你好,

我的表格与上图一样,我想对所有行的数量求和,但我需要排除同一行中 AISLE = POS 且 QTY < 0 的行。

我做了一些尝试来得到我想要的,但我找不到解决方案:

SELECT
  ROUND(SUM(QTY),
  2) AS INVENTORY
FROM
  INV_QTY_LOCATION
WHERE
  PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET' AND case when AISLE = 'POS' AND QTY > 0

再试一次

SELECT
  ROUND(SUM(QTY),
  2) AS INVENTORY
FROM
  INV_QTY_LOCATION
WHERE
  PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET' AND (AISLE = 'POS' AND QTY > 0)

在此特定情况下,结果应为 161。

解决方案

SELECT
  ROUND(
    SUM(
      CASE WHEN(AISLE = 'POS' AND QTY > 0) OR AISLE != 'POS' THEN QTY ELSE 0
    END
  ),
  2
) AS INVENTORY
FROM
  INV_QTY_LOCATION
WHERE
  PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET'

最佳答案

我想指出 NOT IN 将有助于此查询:

WHERE PRODUCT = 143459 AND
      AISLE NOT IN ('PHY', 'RET') AND
      (AISLE <> 'POS' OR QTY > 0)

注意:这假设 AISLE 永远不会是 NULL

或者,或者:

WHERE PRODUCT = 143459 AND
      AISLE NOT IN ('PHY', 'RET') AND
      NOT (AISLE = 'POS' AND QTY > 0)

关于MySQL - 使用分组条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754667/

相关文章:

sql - 在团队中共享常见 SQL 查询

mysql - 为什么这个查询不起作用?

mysql - 是否有用于在 mysql 中存储 rails 日志的 gem?

php - 表名是来自同一查询的变量(PHP)

mysql - 导入 Magento 数据库时出现问题

mysql - 错误 : Failed to build gem native extension - Error installing mysql2

javascript - 正则表达式匹配域名的第一部分

sql - 从 “anchor table”左外联接看到重复项

mysql - SQL 选择上个月的数据

PHP 数据库搜索表单 SQL 问题