powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача на иерархию
5 сообщений из 5, страница 1 из 1
Задача на иерархию
    #39396718
Фотография Антон Щёлкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый вечер.

Дана таблица Employees (айдюк сотрудника, айдюк руководителя, фамилия руководителя, имя руководителя).
Нужно вывести список руководителей, у которых есть только один сотрудник, который никем не руководит (т.е. последний в иерархии). Требуется сделать это одним селектом. Под списком руководителей подразумевается айдюк и ФИО (ФИО просто для информации).


Я додумался только до такого варианта, но что-то мне подсказывает, что он неверен:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select em.manager_id
from employees em
inner join employees e
on e.emp_id = em.manager_id

inner join employees emn
on e.emp_id != emn.manager_id

having count(e.emp_id) = 1
group by em.manager_id



Можно ли как-то решить эту задачу не используя специфичные оракловые операторы и функции?
...
Рейтинг: 0 / 0
Задача на иерархию
    #39396757
watson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
select manager_id
from employee
where id not in (select manager_id from employee)
having count(manager_id) = 1
group by manager_id;
...
Рейтинг: 0 / 0
Задача на иерархию
    #39396803
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
watson,

У босса всех боссов нет босса, т.е. его manager_id скорее всего NULL. Посему:

Код: plsql
1.
2.
3.
4.
5.
select manager_id
from employee
where id not in (select manager_id from employee where manager_id is not null)
having count(manager_id) = 1
group by manager_id;



SY.
...
Рейтинг: 0 / 0
Задача на иерархию
    #39396824
Фотография Антон Щёлкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
watson, SY
спасибо за помощь, тему можно закрывать.
...
Рейтинг: 0 / 0
Задача на иерархию
    #39397160
watson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,

Точно. Либо он сам себе босс id = manager_id :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача на иерархию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]