Я хочу сгруппировать по номеру учетной записи, но у меня возникают проблемы, если я получаю несколько RATE_CD для учетной записи - я получаю NONCOMPLIANT_CNT, равный 2, но я хочу, чтобы это было только 1 на учетную запись, даже если их больше 1 RATE_CD.
Ниже приведена SQL, с которой я играюсь, есть идеи о том, как я могу вернуть NONCOMPLIANT_CNT для каждой учетной записи, и не сворачивать счет, если существует более 1 RATE_CD?
SELECT ID
,ACCOUNT_NBR SUM(CASE
WHEN GROUP_CD = 'RED'
AND TYPE_CD IN ('CHK')
THEN 1
ELSE 0
END) AS 'COMPLIANT_CNT'
,SUM(CASE
WHEN GROUP_CD = 'RED'
AND TYPE_CD IN (
'CN'
,'RN'
)
AND RATE_CD <> 'BLK'
THEN 1
ELSE 0
END) AS 'NONCOMPLIANT_CNT'
,SUM(CASE
WHEN GROUP_CD = 'RED'
AND TYPE_CD IN (
'CN'
,'RN'
,'CHK'
)
THEN 1
ELSE 0
END) AS 'TOTAL_CNT'
FROM DETAIL
LEFT OUTER JOIN RATE_LOOKUP ACCOUNT_NBR = ACCOUNT_NBR
GROUP BY ID
,ACCOUNT_NBR
,RATE_CD