устранение строк, запрашиваемых в подзапросе? - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь решить проблему на db.grussell , заявление о проблеме заключается в

Перечислите полные имена и должности текущих сотрудников, которые были на любом изкурсы, в которых учился Роберт Робертс.

мой подход заключается в том, что я написал подзапрос, который выдает значение courseno, которое взял Роберт Робертс, затем я использую этот courseno, чтобы получитьсоответствующий empno(employment number).Который далее используется в качестве фильтра в других таблицах, который создается путем объединения таблиц jobhistory и employee.Но в выводе я не хочу связывать строку с Робертом Робертсом.Однако я знаю, что это происходит, потому что в первом подзапросе courseno, связанный с Робертом Робертсом, используется для получения empno, следовательно, Роберт Робертс также включается.

SELECT jobhistory.position,employee.surname,employee.forenames
FROM jobhistory
JOIN employee ON employee.empno= jobhistory.empno
WHERE employee.empno = ANY(
     SELECT empno
     FROM empcourse
     WHERE courseno = ANY(
         SELECT courseno
         FROM empcourse
         JOIN employee ON employee.empno = empcourse.empno
             AND employee.surname = 'Roberts'
             AND employee.forenames ='Robert'
         )
    )
    AND jobhistory.enddate IS NULL

История работы

EMPNO   POSITION                    STARTDATE ENDDATE   SALARY
1       Accounts Manager            12-JAN-76           30000
1       Assistant Accounts Manager  11-FEB-72 12-JAN-76 22000

сотрудник

EMPNO   SURNAME FORENAMES   DOB         ADDRESS    TELNO    DEPNO
1       Jones   Elizabeth   05-JAN-44   26 Agnews  212-337   1
                                        Shamrock,  
2       Smith   Robert      07-FEB-47   18 Marsh   031 732   1
                                        Street,     

empcourse

 EMPNO   COURSENO
     1        1
     2        2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...