SQL Query查找直接向该经理报告的所有经理和任何经理

时间:2014-07-06 09:24:31

标签: 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

我创建的查询是: - 但这不是给出desied输出

 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

0 个答案:

没有答案