我有以下查询,我想在比赛中选择其中一项或两项。一个成员可以有多个ID或HIC。因此,如果member ID = member ID
然后为最新的HIC拉取max(loaddate),则同样地如果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)
谢谢,
麦可
最佳答案
当您使用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'
关于sql-server - 使用“或”运算符的T-SQL左联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29833294/