Перечислите emps, чья sal> его менеджер, но меньше, чем другие менеджеры - PullRequest
0 голосов
/ 03 мая 2020

Перечислите emps, чья зарплата> его менеджера, но зарплата меньше, чем у других менеджеров

Таблица

emp_ID  emp_Name    emp_sal_K   emp_manager
1        Ali          200         3
2        Zaid         620         4
3        Mohd         1140        2
4        LILY         600         NULL
5        John         1240        6
6        Mike         1160        4
7        John         1240        6
8        Mohd         1640        2

Запрос

select *
from emp_demo2 e1
      where emp_sal_K > 
        (select emp_ID from emp_demo2 e2 
        where e1.emp_manager = e2.emp_ID and e2.emp_sal_K 
         < all
          (select emp_id from emp_demo2 e3
           where e2.emp_ID = e3.emp_id))

Результат: пустые столбцы. Всего 4 менеджера 2, 4, 6 и 3. Здесь ясно, что emp_id 2 Зайд - человек, чья зарплата 620 больше, чем зарплата его менеджера emp_id 4, что на 600, но меньше, чем у всех других менеджеров emp_id 6 и 3. Поэтому я должен получить этот результат, но ничего не получу.

Ожидаемый результат

emp_ID  emp_Name    emp_sal_K   emp_manager
  2      Zaid         620         4

1 Ответ

1 голос
/ 03 мая 2020
SELECT emp.* 
FROM   emp_demo2 emp 
       LEFT JOIN emp_demo2 mgr 
              ON emp.emp_manager = mgr.emp_id 
WHERE  emp.emp_sal_k > mgr.emp_sal_k 
       AND emp.emp_sal_k < (SELECT Min(mgr1.emp_sal_k) 
                            FROM   emp_demo2 emp1 
                                   JOIN emp_demo2 mgr1 
                                     ON emp1.emp_manager = mgr1.emp_id 
                            WHERE  mgr1.emp_id <> emp.emp_manager 
                                   AND mgr1.emp_id <> emp.emp_id) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...