У меня есть две таблицы, одна из которых помечает пользователя как прошедшего курс, и список курсов по коду работы. Я пытаюсь запросить, чтобы вернуть запись для всех пользователей, которые пропустили классы.
Вот таблицы:
Attended
--------
empid jobcode classcode grade
555 1 100 A
555 1 101 A
444 2 200 A
JobClassCode
--------
jobcode classcode
1 100
1 101
1 102
2 100
2 200
3 300
3 301
Я начал с этого запроса, чтобы найти классы с отсутствующим пользователем:
select * from attended at
right outer join jobcodeclass jc on at.jobcode = jc.jobcode and at.classcode = jc.classcode
Затем я попытался использовать это для создания коррелированного подзапроса, но не вижу способа вернуть и идентификатор пользователя, и пропущенный идентификатор курса:
select * from jobcodeclass oq where classcode in (select jc.classcode from attended at
right outer join jobcodeclass jc on at.jobcode = jc.jobcode
and at.classcode = jc.classcode and jc.jobcode = oq.jobcode
and oq.classcode = jc.classcode and empid is null)