У меня есть таблица с номером участника, именем, full_desc и activity_type, как показано ниже
MEM_NO Name full_desc Activity_type
1233 John LM Application received 9097
1233 John Retired 9630
1234 Mark LM Application received 9097
3325 Steve LM Application received 9097
3325 Steve Retired 9630
6566 Gareth Retired 9630
7088 Daniel Resign 9629
Я хочу, чтобы вывод был
MEM_NO Name full_desc Activity_type Status
1233 John LM Application received 9097 LM Application received
1234 Mark LM Application received 9097 LM Application received
3325 Steve LM Application received 9097 LM Application received
6566 Gareth Retired 9630 No LM Recevied
7088 Daniel Resign 9629 No LM Recevied
Примечание: -
1) Я хочу показать отдельных участников, у которых активность_типа 9097 и 9630 или 9629 должны иметь статус "Заявка LM получена"
2) Участник, к которому прикреплен только action_type 9097, также должен иметь статус «Заявка LM получена»
3) Члены, у которых нет прикрепленного Activity_type 9097, но у них есть либо 9630, либо 9326, показывают свой статус как «Не получен LM».
SELECT MBR.MEMBERSHIP_NO,IND.TITLE,IND.FORENAMES,IND.DATE_OF_BIRTH,DATEADD(dd, 0, DATEDIFF(dd, 0, AL.ACTION_DATE)) as 'Date',LU1.FULL_DESC,COUNT(mbr.MEMBERSHIP_NO) as Total_Retired, null as Life_app_received,null as Total_Resign,
CASE WHEN AL.ACTIVITY_TYPE in (9630,9097) THEN 'LM Application received' ELSE 'NO LIFE' END AS STATUS
---AL.ACTIVITY_DATE,
FROM INDIVIDUAL IND
JOIN ACTIVITY_LOG AL ON AL.INDIVIDUAL_REF=IND.INDIVIDUAL_REF
JOIN LOOKUP_TABLE LU1 ON LU1.LOOKUP_TABLE_REF=AL.ACTIVITY_TYPE-----------------------MEM - 0 - Future Cancellation - Retired
JOIN MEMBER MBR ON MBR.INDIVIDUAL_REF=IND.INDIVIDUAL_REF
WHERE AL.ACTIVITY_TYPE IN (9630,9097) AND AL.ACTION_DATE BETWEEN '2017-01-01' AND '2020-12-31' --AND MBR.MEMBER_STATUS=33
GROUP BY MBR.MEMBERSHIP_NO,IND.TITLE,IND.FORENAMES,IND.DATE_OF_BIRTH,DATEADD(dd, 0, DATEDIFF(dd, 0, AL.ACTION_DATE)),LU1.FULL_DESC,AL.ACTIVITY_TYPE
Выше мой запрос, который не может принести то, что я хочу. Любая помощь очень ценится