Sql server 2005 是否修改CTE以引用其他字段?

Sql server 2005 是否修改CTE以引用其他字段?,sql-server-2005,common-table-expression,Sql Server 2005,Common Table Expression,我让下面的CTE很好地重新创建了一个employee表,并构建了一个传递给它的员工id以及所有直接和间接报告的扩展列表 我正试图使一个姐妹CTE使用用户名而不是员工id,但我没有得到数据后,我做了更改回来 这是我与employeeID的工作代码,我如何才能让它与NTID员工和managerNTID经理一起工作 假设managerNTID引用管理器的NTID列,请尝试以下操作: CREATE FUNCTION fnGetEmployeeHierarchyNew(@EmployeeNTID int

我让下面的CTE很好地重新创建了一个employee表,并构建了一个传递给它的员工id以及所有直接和间接报告的扩展列表

我正试图使一个姐妹CTE使用用户名而不是员工id,但我没有得到数据后,我做了更改回来

这是我与employeeID的工作代码,我如何才能让它与NTID员工和managerNTID经理一起工作

假设managerNTID引用管理器的NTID列,请尝试以下操作:

CREATE FUNCTION fnGetEmployeeHierarchyNew(@EmployeeNTID int = null)  
RETURNS TABLE   
AS  
  RETURN   
  (  
    WITH NewCTE AS  
    (  
      SELECT EmployeeId, ManagerID, NTID, FullName--, Name  
      FROM Employees  
      WHERE NTID = ISNULL(@EmployeeNTID, EmployeeNTID)  

      UNION ALL  

      SELECT e.EmployeeId, e.ManagerID, e.NTID, e.FullName--, e.Name  
      FROM Employees e  
      JOIN NewCTE y ON e.ManagerNTID = y.NTID  
    )  
    SELECT EmployeeId, ManagerID, NTID, FullName--, Name  
    FROM NewCTE
  )

我修正了这一行:其中NTID=ISNULL@EmployeeNTID,EmployeeNTID,即:其中NTID=ISNULL@UserName,NTID,因为employeeID和managerID之间的分析关系实际上是NTID和managerNTID。即使修复了这个问题,我也会出现语法错误。想法?@kacalapy:语法错误在哪里??什么行,什么陈述??
CREATE FUNCTION fnGetEmployeeHierarchyNew(@EmployeeNTID int = null)  
RETURNS TABLE   
AS  
  RETURN   
  (  
    WITH NewCTE AS  
    (  
      SELECT EmployeeId, ManagerID, NTID, FullName--, Name  
      FROM Employees  
      WHERE NTID = ISNULL(@EmployeeNTID, EmployeeNTID)  

      UNION ALL  

      SELECT e.EmployeeId, e.ManagerID, e.NTID, e.FullName--, e.Name  
      FROM Employees e  
      JOIN NewCTE y ON e.ManagerNTID = y.NTID  
    )  
    SELECT EmployeeId, ManagerID, NTID, FullName--, Name  
    FROM NewCTE
  )