myTable имеет составной ключ, образованный из столбцов A и B (всего столбцов A, B, C, D, E).
Я хочу исключить / игнорировать записи, в которых значение D (скажем, номер заказа) одинаково, а E (скажем, решение) - это Y в одном, а N или Null в другом. (означает, что все записи-близнецы с одинаковым порядковым номером (равным значению D), которые были упорядочены сначала (поэтому E = Y), а затем снова отменены (поэтому E = N), должны игнорироваться)
Итак, я вытащил A, B для всех записей, где D одно и то же, но E - это Y в одном, а N - в другом
SELECT *
FROM myTable A, myTable B
WHERE
(A.D=B.D)
AND
((A.E ='Y' AND (B.E ='N' OR B.E IS NULL)) OR (B.E='Y' AND (A.E='N' OR A.E IS NULL)))
Теперь моим окончательным выводом должны быть все записи из myTable, но не записи, найденные выше.
Я написал запрос на соединение, но он не работает должным образом. В основном вопрос в том, как сравнить два составных ключа ??
Пример данных:
A B C D E
=========================
1 A xyz ONE Y
2 B pqr TWO Y
3 C lmn ONE N
4 D abc THREE Y
5 E ijk FOUR Y
=========================
Таким образом, мои выходные данные должны быть записями 2,4 и 5. Поскольку 1 и 3 будут игнорироваться. Потому что 1.D = 3.D и 1.E - это Y, а 3.E - это N.
Спасибо,
Nik