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 - 执行非常复杂的 SQL 分组的有效方法 :

sql - 忽略 postgres 中主键的不同子句

php - 如何使用 Foreach 循环 Php 添加 ON DUPLICATE KEY UPDATE

mysql - SSIS - 从MySql到MsSql的数据有些字符是什么?

mysql - SQL - 将 LIKE 与占位符和 AND & OR 运算符一起使用

sql - ROW_NUMBER() 性能优化

mysql - 查询多个 SQL 表以获取一种类型的对象

php - Jquery ui 与 php/mysql 的问题

PHP多个数组存入MySQL数据库

php - 为网站中的不同页面建立单独的数据库是一个好习惯吗?