SQL-запрос, чтобы узнать всех менеджеров и любого менеджера, который подчиняется непосредственно этому менеджеру

#sql #oracle

#sql #Oracle

Вопрос:

У меня есть таблица demo_snap со столбцами информации о сотрудниках и руководителях. Я хочу узнать всех менеджеров и любого менеджера, который подчиняется непосредственно этому менеджеру, включая его самого. Запрос действительно сбивает меня с толку: (

Запрос, который предоставит информацию о сотруднике и руководителе, является :

 Select 
     employee_number,
     first_name e_first_name,
     last_name e_last_name,
     supervisor_employee_number,
     supervisor_first_name,
     supervisor_last_name
from demo
  

Может ли кто-нибудь помочь мне сформировать этот запрос таким образом, чтобы найти всех менеджеров и любого менеджера, который подчиняется непосредственно этому менеджеру, включая его самого

Пример вывода приведенного выше запроса :

 e_number f_name l_name supervisor_e_number s_first_name      s_last_name
   1      John  Smith     2                Adam                  juan
   4      Shree Lekha     2                Adam                  juan
   6      Hema  Malini    3                Shruti                Hasan
   7      Gauri Mikha     1                John                  Smith
  

Желаемый результат, который я хочу, то есть я хочу создать запрос таким образом, чтобы выбирались следующие сотрудники :-

 active managers- 2,3 and managers that reports to the active manager-1
  

Созданный мной запрос выглядит так:- но это не дает желаемого результата

  WITH mgr_temp
      AS (SELECT person_id mgr_person_id,
                 employee_number mgr_num,
                 first_name mgr_name,
                 supervisor_number mgr_sup

           FROM demo mgr
          )
 SELECT mgrs.mgr_num HISL_ID,
        delegs.mgr_num DELEGATE_HISL_ID,
        mgrs.mgr_name emp_name,
        delegs.mgr_name sup_name
   FROM mgr_temp mgrs, mgr_temp delegs
  WHERE     mgrs.mgr_sup = delegs.mgr_sup
        AND mgrs.mgr_num <> delegs.mgr_num
  

Комментарии:

1. Можете ли вы добавить некоторые примеры данных и результат, который вы ожидаете получить? Я, например, не смог понять, что вы пытаетесь сделать.

2. Было бы полезно собрать SQLFiddle . Не забудьте изменить базу данных на Oracle 11.2. Спасибо!!

3. Пожалуйста, отредактируйте заголовок вашего вопроса. «Все менеджеры» уже включает «менеджеров, которые подчиняются менеджерам», поэтому ваше требование фактически просто «все менеджеры».

4. Почему только у одного из менеджеров (Джона Смита) есть запись в demo_snap таблице? Или, возможно, вопрос должен быть «Почему у некоторых менеджеров (Адама Хуана, Шрути Хасан) нет записи в demo_snap таблице?». ???

5. Непонятно! Пожалуйста, переформулируйте вопрос и укажите несколько допустимых примеров данных!