次のコードがあり、これらを group by に含めない方法がわかりません。いくつかの議論は純粋にケースのためのものであり、それがすべてです。グループに含めることはできません。TransactionTyp のみでカウントを取得する必要があるため、実際には他にグループ化することはできませんが、集計関数または GROUP BY 句のいずれにも含まれていないため、選択リストでは無効です。
たぶん、CASE の使用はこれを行うのに間違った方法でしょうか? しかし、他のフィールドに基づいて値の一部を置き換える必要があります。
これはMS SQLにもあります。
SELECT Count(*),
CASE
WHEN a.TransactionTyp IS NOT NULL THEN a.TransactionTyp
WHEN a.ClaimStatus = 'Resolved-Deflected' THEN 'Deflected'
WHEN a.ClaimStatus = 'Resolved-NoAction' THEN 'Deflected'
WHEN a.ClaimStatus = 'Open' AND b.AssignOperator = 'PendClaim.NF_POS_Pinless' THEN 'Affiliate'
END As TransactionTyp
FROM Table1 a
LEFT JOIN Table2 b
ON a.ClaimNbr = b.ClaimDisputeNbr AND b.CreateDte = Convert(varchar,GetDate(), 101)
WHERE a.ClaimEntryDte = Convert(varchar,GetDate(),101)
AND a.ClaimTypCd IN ('DEBS', 'DEBSI', 'DBCIN', 'DBCUS')
GROUP BY TransactionTyp