Я пытаюсь исключить запись, если ID (PK)
совпадает, но значение вторичного столбца отличается.
Итак, в моем примере ниже у меня есть два разных кода E03_Port
и E12_PortfNotDef
для одного ID
, поэтому я хочу исключить запись E12_PortfNotDef
, если коды от E01..
до E04..
срабатывает.
SELECT *
FROM (
SELECT ID, Code,
MAX(CASE WHEN Code = 'E01_Matured' THEN 1 Else NULL END) AS Matured,
MAX(CASE WHEN Code = 'E02_Terminated' THEN 2 Else NULL END) AS Terminated,
MAX(CASE WHEN Code = 'E03_Port' THEN '3' Else NULL END) AS Port,
MAX(CASE WHEN Code = 'E04_Swap' THEN 4 Else NULL END) AS Swap,
MAX(CASE WHEN Code = 'E12_PortfNotDef' THEN '12' Else NULL END) AS Port_Not_Def
FROM EXCLUDED
GROUP BY ID, Code
)
WHERE COALESCE(Matured, Terminated, Port, Swap Port_Not_Def) IS NOT NULL
AND ID = '120320AC'
ORDER BY ID;
Фактические результаты:
ID Code Matured Terminated Port Swap Port_Not_Def
120320AC E03_Port 3
120320AC E12_PortfNotDef 12
Ожидаемые результаты:
ID Code Matured Terminated Port Swap Port_Not_Def
120320AC E03_Port 3