Я изучаю sql, и у меня есть вопрос, который я не могу решить самостоятельно:
Выберите имя, должность, город для сотрудников, которые не работают в той же службе, что и их непосредственный руководитель.
У меня есть две таблицы:
- EMP (NOEMP, NAME, FIRST, NAME, EMPLOI, SUP, HIRING, SAL, COMM, NOSERV)
- SERV (NOSERVCITY SERVICE)
После анализа двух таблиц я могу узнать, не работает ли сотрудник в том же городе, что и его начальник, извлекая вторую цифру столбца SUP.
И здесь вы можете прочитать мое предложение, чтобы решить вопрос.
select e1.nom, e1.prenom, e1.emploi, s1.ville, substr(sup,2,1), e1.noserv`
from emp e1 join
serv s1
on e1.noserv = s1.noserv
where e1.nom in (select distinct e3.nom
from emp e3 join
emp e4
on e3.noserv = e4.noserv
where substr(e3.sup,2,1) != e4.noserv
);
Все работает хорошо, но у меня неожиданный вывод, как вы можете видеть на этом экране с моего ноутбука.
вывод запроса
Вот образец данных: