Mic*_*el 2 t-sql sql-server left-join
我有以下查询,我想在匹配中拉入其中一个或两个.成员可以有多个ID或HIC.因此,如果member ID = member ID然后拉出max(loaddate)为最新的HIC同样如果HIC = HIC使用max(loaddate)拉入成员ID.我希望包含左连接,以防在任何一个场景中找不到匹配项.
码:
SELECT
CH1.*
,AVM.MBR_ID
,AVM.HIC
,AVM.MBR_LST_NM
,AVM.MBR_FST_NM
,CAST(AVM.MBR_BIRTH_DT AS DATE) AS 'MBR_BIRTH_DT'
,AVM.LOADDATE
FROM
#CHECK1 CH1
LEFT JOIN
AVRIL.DBO.VW_MBR AVM ON (CH1.HICN = AVM.HIC OR CH1.MEMBER_ID = AVM.MBR_ID)
WHERE
CH1.HEALTH_PLAN = 'AVRIL'
AND AVM.LOADDATE=(SELECT MAX(LOADDATE) FROM AVRIL.DBO.VW_MBR)
Run Code Online (Sandbox Code Playgroud)
谢谢,迈克尔
当您使用子句中的VW_MBR表中的字段时where,它会有效地left join转换为inner join.将条件放在连接中:
...
FROM #CHECK1 CH1
LEFT JOIN AVRIL.DBO.VW_MBR AVM ON (CH1.HICN = AVM.HIC OR CH1.MEMBER_ID = AVM.MBR_ID)
AND AVM.LOADDATE=(SELECT MAX(LOADDATE) FROM AVRIL.DBO.VW_MBR)
WHERE CH1.HEALTH_PLAN = 'AVRIL'
Run Code Online (Sandbox Code Playgroud)