我試圖做一個使用「CASE」操作的select語句,但它說我的條件(abc.reason)是無效的,因爲它不包含在集合函數或GROUP BY子句。我試着將它添加到GROUP BY子句中,但在結果表中創建了一個不必要的行。有小費嗎?適當的聚合函數或如何解決它
SELECT
DISTINCT ID
,(CASE WHEN reason = 4 THEN null ELSE SUM(quantity*price) END) AS Value
,COUNT(*) AS CountAll
FROM TransactionsDB
GROUP BY ID
ORDER BY ID DESC
如果我改變我的GROUP BY子句GROUP BY ID, reason
那麼我的結果是:
ID ----價值 - --- COUNTALL
ID1 - - 1000 - - - - - 22
ID1 - - - NULL - - - - 1
ID2 - - - - 232 - - - 17
ID3 - - - - 113 - - - 2
ID3 - - - - 空 - - 1
當我真的需要的結果:
ID ---- ----- VALUE COU NTALL
ID1 - - 1000 - - - - - 23
ID2 - - - - 232 - - - 17
ID3 - - - - 113 - - - 3
預先感謝您!!!!
你好理查德,我有這個解決方案之前,而是我用SUM(數量*價格)之和(情況下....)的內部,這引發了錯誤。但是,這工作,非常感謝你:)! – user1736733
我刪除了DISTINCT,因爲GROUP BY已經做了同樣的事情。 – RichardTheKiwi