2017-08-30 15 views
1

Amount列が追加されたときに結果が0になり、同じColumnAとColumnBを持つというデータを照会したいだけです。しかし、問題は、ColumnBをグループに追加するときです。間違った結果が得られます。SQL - 0と等しい複数の重複行の合計

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

は、私が見つけたコードです:

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

は基本的に私が望む結果は次のとおりです。また、それの合計は基本的に0

でないデータを返します。

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

お願いします。

+0

結果 - あなたはあなただけを気にしています。この – FuzzyTree

+0

@Jomariを解決するための手順が必要になる場合がありますたとえば、元のデータセットにレコード{234,555,5}があった場合、これが予想される出力にどのように影響しますか? –

+0

返信して申し訳ありません。{234,555,5}をデータに追加すると、togeherに追加されたときに同等の値を持つデータが必要なので何も起こりません。 – Jomari

答えて

0
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 
+0

ありがとう、この作品 – Jomari

0

このような何か作業をする必要があり

select columnA 
, columnB 
, amount 
from table join 
(select columnA A 
, columnB B 
, sum(amount) theSum 
group by columnA, columnB) temp on columnA = A 
and columnB = B 
where theSum <> 0 
関連する問題