mysql - SQL - 多个重复行的总和等于 0

标签 mysql sql

我只想查询当添加金额列时结果为 0 且具有相同的 ColumnA 和 ColumnB 的数据。但问题是当我在 Group By 中添加 ColumnB 时,我得到了错误的结果。也返回其和不为0的数据。

基本上:

Input:
    ColumnA,       ColumnB,           Amount
    123,             555,               10
    234,             555,              -25
    234,             555,               10
    234,             555,               15
    123,             555,               20

基本上我想要的结果是:

ColumnA,       ColumnB,           Amount
        234,             555,              -25
        234,             555,               10
        234,             555,               15

这是我找到的代码:

SELECT * FROM table
WHERE ColumnA In
(
SELECT ColumnA FROM table
GROUP BY ColumnA, ColumnB
HAVING SUM(Amount)
)

请帮忙解决这个问题?

最佳答案

SELECT *
  FROM t_column t1 -- your table name
 WHERE EXISTS (SELECT 1
                 FROM t_column t2 -- your table name
                WHERE t1.columnA = t2.columnA
                  AND t1.columnB = t2.columnB
               HAVING SUM(amount) = 0
              ) 

结果

columnA columnB amount
234     555     -25
234     555     10
234     555     15  

关于mysql - SQL - 多个重复行的总和等于 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45965315/

相关文章:

sql - 验证类型 2 缓慢变化的维度表

mysql - 如何将聚合查询与不同的连接结合起来?

php - 如何在 jQuery 自动完成中显示多个字段,并且在选择结果时只有一个字段在文本框中可见?

mysql - 使用 Node.js、express 和 MySQL

Mysql累计总数有时只工作

mysql - 如何查看整个数据库中的哪些列引用一个特定列作为外键?像 "reverse"外键?

MYSQL 查询转换为 SQL SERVER

sql - Oracle SQL 查询仅在一个进程中失败 : "ORA-01405: fetched column value is NULL"

mysql - 与属性和代理键的多对多关系

当where子句子查询具有无效列名时返回所有记录的SQL查询...?