, Создайте отчет «Список сотрудников» с указанием имени менеджера и сотрудников, которые отчитываются перед этим менеджером. - PullRequest
0 голосов
/ 24 февраля 2020

Я думаю, что мне следует использовать объединение здесь, однако я не совсем уверен, как отчет появляется в SQL, потому что сотрудники и менеджер, которому они сообщают, находятся в одной таблице введите описание изображения здесь

1 Ответ

0 голосов
/ 25 февраля 2020

В Oracle это будет обрабатываться наиболее элегантно с помощью рекурсивных функций, доступных через функцию "CONNECT BY PRIOR". Как вы указали, вы работаете за пределами Oracle, вы должны дважды присвоить псевдониму таблицу. Кроме того, вы не указали, возможно ли, чтобы у менеджера не было сотрудников, или у сотрудника не было менеджера - в любом из этих случаев вам необходимо учитывать условие «ВНЕШНЕЕ СОЕДИНЕНИЕ». Ниже приведен код для простого случая: у каждого сотрудника есть менеджер, а у каждого менеджера есть сотрудники:

Select m.lastname manager_last,
m.firstname  manager_first,
e.lastname employee_last, e.firstname employee_first
from employee_list e, employee_list m
where e.reports_to = m.employee_number
order by m.lastname, m.firstname, e.lastname, e.firstname  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...