Le vrai problème ici est que même si la personne est la même, le compte est différent. En incluant cela dans les résultats et dans le GROUP BY, vous empêchez les enregistrements de se dérouler comme vous le souhaitez. Si vous supprimez cela des résultats et du GROUP BY, les choses commencent à mieux fonctionner. Vous pouvez ensuite les replacer dans les résultats en utilisant un CASE
en combinaison avec une fonction d'agrégation ... sachez que s'il y a plus d'un compte RFND ou ACTV, vous ne pouvez pas être sûr de ce que vous obtenez avec ceci :
SELECT SVC.PERSON_ID, SVC.FIRST_NM, SVC.LAST_NM,
SUM(SVC.LEGACY_SVC_DAYS) As LEGACY_SVC_DAYS,
SUM(ISNULL(ACTUAL_SERVICE_YEARS,0)) * 365 + SUM(ISNULL(ACTUAL_SERVICE_MONTHS,0)) * 30 + SUM(ISNULL(ACTUAL_SERVICE_DAYS,0)) AS TOTAL_SERVICE,
CAST((SUM(ISNULL(ACTUAL_SERVICE_YEARS,0)) * 365 + SUM(ISNULL(ACTUAL_SERVICE_MONTHS,0)) * 30 + SUM(ISNULL(ACTUAL_SERVICE_DAYS,0))) AS INT)/365 AS TOTAL_YEARS,
(CAST((SUM(ISNULL(ACTUAL_SERVICE_YEARS,0)) * 365 + SUM(ISNULL(ACTUAL_SERVICE_MONTHS,0)) * 30 + SUM(ISNULL(ACTUAL_SERVICE_DAYS,0)))AS INT) % 365)/30 AS TOTAL_MONTHS,
((SUM(ISNULL(ACTUAL_SERVICE_YEARS,0)) * 365 + SUM(ISNULL(ACTUAL_SERVICE_MONTHS,0)) * 30 + SUM(ISNULL(ACTUAL_SERVICE_DAYS,0))) % 365) % 30 AS TOTAL_DAYS,
-------- New ---------
CASE WHEN MAX(CASE WHEN SPA.ACCOUNT_STATUS_VALUE = 'RFND' THEN SPA.PERSON_ACCOUNT_ID ELSE 0 END) > 0 THEN 'Y' ELSE 'N' END AS RFND,
CASE WHEN MAX(CASE WHEN SPA.ACCOUNT_STATUS_VALUE = 'ACTV' THEN SPA.PERSON_ACCOUNT_ID ELSE 0 END) > 0 THEN 'Y' ELSE 'N' END AS ACTV
MAX(CASE WHEN SPA.ACCOUNT_STATUS_VALUE = 'RFND' THEN SPA.PERSON_ACCOUNT_ID ELSE 0 END) AS RFND_SERVICE,
MAX(CASE WHEN SPA.ACCOUNT_STATUS_VALUE = 'ACTV' THEN SPA.PERSON_ACCOUNT_ID ELSE 0 END) AS ACTV_SERVICE
FROM RECON_CREDIT_SVC SVC
INNER JOIN PERSON_ACCOUNT SPA ON SPA.PERSON_ID = SVC.PERSON_ID
INNER JOIN PA_SERVICE_SUMMARY_BKUP_10152016 PSS ON PSS.PERSON_ACCOUNT_ID = SPA.PERSON_ACCOUNT_ID
GROUP BY SVC.PERSON_ID, SVC.LEGACY_SVC_DAYS, SVC.FIRST_NM, SVC.LAST_NM
fyi: il est considéré comme très impoli ici d'afficher des images de texte, même formatées comme vos résultats. Il est également plus difficile pour vous d'obtenir de l'aide, car nous devrons peut-être retaper cela pour créer un ensemble de données à utiliser pour tester nos solutions. Cela empêchera certaines personnes de même lire plus loin dans la question. Management Studio dispose d'une option dans la barre d'outils pour présenter les résultats sous forme de texte que vous copiez/collez dans Stack Overflow. –