使用员工的managerID的N级managerName(主管名称)

时间:2019-11-18 07:46:45

标签: sql tsql join sql-server-2012 hierarchical-data

我有一个表Employee,其中包含EmployeeID,姓名,ManagerID(引用EmployeeID)和RoleID

我需要找到一个方向名称,该名称是经理的经理,...的经理的经理,直到特定员工的根用户(其RoleID = 2)。

组织层次结构图:

enter image description here

表格数据:

    EmployeeID EmployeeName ManagerID RoleID 
    --------    ----------  --------  ------  
    1          John            5       3      
    2          Mark            8       2      
    3          Steve           8       2      
    4          Tom             3       3      
    5          Lara            8       2      
    6          Simon           2       3      
    7          David           4       4      
    8          Ben             NULL    1      
    9          Stacy           2       3      
    10         Sam             5       3      

预期结果:

    EmployeeID EmployeeName ManagerID RoleID DirectorName
    --------    ----------  --------  ------  -----------
    1          John            5       3      Lara
    2          Mark            8       2      NULL
    3          Steve           8       2      NULL
    4          Tom             3       3      Steve
    5          Lara            8       2      NULL
    6          Simon           2       3      Mark
    7          David           4       4      Steve
    8          Ben             NULL    1      NULL
    9          Stacy           2       3      Mark
    10         Sam             5       3      Lara

角色表

   RoleID RoleName
   ------ --------     
    1     Boss        
    2     Director            
    3     Manager
    4     Developer   

预先感谢

0 个答案:

没有答案