SQL - сравнивать строки в разных таблицах - PullRequest
0 голосов
/ 31 января 2019

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:

  1. , где в обоих годах присутствует один и тот же HCC (например, MemberA имеет одинаковый HCC101 в обеих таблицах)

  2. , где есть HCC19 в Table1.HCC2017 и (HCC20 или HCC21) в Table2.HCC2018, (например, член A)

  3. , где 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...