Исключение данных с использованием NOT IN в соединении с использованием DB2, SQL PL - PullRequest
1 голос
/ 11 октября 2011

Мне нужна помощь в формулировании правильного подхода к запросу.

У меня есть сотрудники, которым нужно дать работу.Если они не доступны на дату, они исключаются из группы сотрудников, которые могут получить работу.Я думаю, что понятно, что я пытаюсь сделать, но это неправильный синтаксис:

INNER JOIN mySchema."STAFF" S
ON RS.STAFF_ID = S.STAFF_ID
AND RS.STAFF_ID NOT IN (SELECT SU.STAFF_ID 
FROM mySchema."STAFF_UNAVAIL" SU
WHERE SU.UNAVAIL_DT = OUTSTANDING_DATE)

Есть какие-нибудь идеи о том, как можно достичь NOT IN в объединении, фактически не делая этого в объединении?

1 Ответ

1 голос
/ 12 октября 2011

поместите его в предложение where после объединения

INNER JOIN mySchema."STAFF" S
ON RS.STAFF_ID = S.STAFF_ID
...any other joins...
WHERE RS.STAFF_ID NOT IN (SELECT SU.STAFF_ID 
FROM mySchema."STAFF_UNAVAIL" SU
WHERE SU.UNAVAIL_DT = OUTSTANDING_DATE)
...