Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подзапросы / 9 сообщений из 9, страница 1 из 1
26.02.2017, 19:27
    #39410443
mikky_green
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
Задача состоит с следующем:
Необходимо сформируйте запрос, выводящий имена руководителей, у которых все подчиненные получают больше $2500

Чувствую, что решение лежит на поверхности и оно простое, но целый день мучаюсь, не могу написать корректно работающий запрос.
Единственное, до чего смог дойти, это вывод руководителей, у которых ХОТЯ БЫ ОДИН работник получает зарплату больше 2500.
Мой запрос:

Код: plaintext
select ename from emp chief where chief.empno IN(select slave.mgr from emp slave where slave.sal > 2500);

Второй вариант:
Код: plaintext
1.
select ename, empno from emp chief
     where chief.empno = ANY(select slave.mgr from emp slave where slave.sal >= 2500);

Знаю, что надо использовать ALL для решения это задачи, но никак не могу адекватно его использовать.
Знаю, что ANY и IN в данном случае не уместны, но их я употребил не из-за незнания, а из-за отчаяния.
...
Рейтинг: 0 / 0
26.02.2017, 19:44
    #39410449
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
Код: sql
1.
2.
3.
4.
select chief.ename, chief.empno
  from emp chief join emp slave on chief.empno=slave.mgr
  group by chief.ename, chief.empno
  having min(slave.sal) >= 2500



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.02.2017, 19:49
    #39410450
mikky_green
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
Dimitry Sibiryakov,
Спасибо огромное, добрый человек)
Буду разбираться
...
Рейтинг: 0 / 0
27.02.2017, 07:02
    #39410560
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
mikky_green,


ВСЕ подчиненные!
Видимо, надо ВСЕ дерево подчинения раскручивать рекурсивным запросом
...
Рейтинг: 0 / 0
27.02.2017, 07:02
    #39410561
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
connect by
...
Рейтинг: 0 / 0
27.02.2017, 07:04
    #39410562
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
mikky_green,

any, all не используй никогда, они излишне.
exists, in их заменяют.
...
Рейтинг: 0 / 0
27.02.2017, 09:20
    #39410618
Подзапросы
MasterZivmikky_green,

any, all не используй никогда, они излишне.
exists, in их заменяют.

А "потому что" будет или вновь принять как данность?
...
Рейтинг: 0 / 0
27.02.2017, 10:03
    #39410640
Подзапросы
mikky_greenЗнаю, что надо использовать ALL ...
Знаю, что ANY и IN в данном случае не уместны...
All можно использовать, но тогда подмножество должно соответствовать коррелируемому менеджеру. Условие в этом случае не на его id, а на зарплату 2500 < all (...)
any тоже можно использовать, но с "не равно" и условие зарплаты поменять на обратное.

Но возможно, что рассматриваемый подход неверен. У руководителя в подчинении могут быть руководители со своими подчиненными. И кто же тогда "все подчиненные"?
...
Рейтинг: 0 / 0
27.02.2017, 12:51
    #39410858
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подзапросы
"Вассал моего вассала - не мой вассал."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подзапросы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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