Table1
Mem HCC2017
--- -------
A HCC19
A HCC12
B HCC67
B HCC132
B HCC190
C HCC88
D HCC91
E HCC20
Table2
Member HCC2018
--- ---------
A HCC14
A HCC101
A HCC20
A HCC55
B HCC33
B HCC131
Я хочу исключить только строку из Table1:
, где в обоих годах присутствует один и тот же HCC (например, MemberA имеет одинаковый HCC101 в обеих таблицах)
, где есть HCC19 в Table1.HCC2017 и (HCC20 или HCC21) в Table2.HCC2018, (например, член A)
, где HCC132 в Table1.HCC2017 и HCC131 в Table2.HCC2018 (например, член B)
Результирующий набор данных
A HCC12
A HCC18
B HCC67
B HCC190
C HCC88
D HCC91
E HCC20
Я пытался использовать выражения case по-разному, но я не получил желаемых результатов.Я продолжаю идти все глубже и глубже в кроличью нору!
SELECT DISTINCT *
INTO #TEST
FROM
(
SELECT DISTINCT
H7.MEMBER
,H7.HCC2017
,H8.HCC2018
,CASE
WHEN H7.HCC2017 ='HCC19' AND H8.HCC2018 in ('HCC20','HCC21') THEN 1
WHEN H7.HCC2017 ='HCC132' AND H8.HCC2018 ='HCC131' THEN 1
WHEN H7.HCC2017 = H8.HCC2018 THEN 1
ELSE 0
END AS MATCH
FROM Table1 H7
LEFT JOIN Table2 H8 ON H7.MEMBER = H8.MEMBER
)A
WHERE MATCH = 0
SELECT DISTINCT * FROM #TEST