「CASE」操作を使用してselectステートメントを実行しようとしていますが、集計関数またはGROUP BY句のいずれにも含まれていないため、条件(abc.reason)が無効であると表示されます。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 --- --- NULL --- 1
本当に結果が必要な場合:
ID----値-----COUNTALL
id1 ---- 1000 ---- ---- -23
id2 --- --- 232 --- --17
id3 --- --- 113 --- --3
前もって感謝します!!!!