Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
员工sql高级经理_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

员工sql高级经理

员工sql高级经理,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个员工表: 我有一个连接userid和category id的category表: 值为1的类别为高级经理 我想找到每个员工的高级经理。类别值为1的高级经理 我需要这样的输出: 我们如何在SQLServer2008中实现这一点 非常感谢您的帮助。由于此查询需要a,因此应该可以: SELECT a.EMPLOYEENAME as Employee, b.EMPLOYEENAME as Senior_Manager FROM employee a LEFT JOIN

我有一个员工表:

我有一个连接userid和category id的category表:

值为1的类别为高级经理

我想找到每个员工的高级经理。类别值为1的高级经理

我需要这样的输出:

我们如何在SQLServer2008中实现这一点

非常感谢您的帮助。

由于此查询需要a,因此应该可以:

 SELECT a.EMPLOYEENAME as Employee,
        b.EMPLOYEENAME as Senior_Manager
 FROM employee a
 LEFT JOIN
 employee b ON a.ID = b.Manager
 LEFT JOIN
 category c ON b.ID = c.UserID
 WHERE c.Category = 1
尝试:

WITH Emp_CTE AS (

 Select ID,EmployeeName,Manager from employee

 UNION ALL

 SELECT ecte.ID,ecte.EmployeeName,c.Manager
 FROM employee c
 INNER JOIN Emp_CTE ecte ON ecte.Manager = c.ID
)
SELECT a.ID,a.EmployeeName,b.EmployeeName
FROM Emp_CTE a
left join employee b
on a.Manager = b.ID
left join category c
on a.Manager = c.UserID
where c.Category = '1'