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