1
我在下面的CTE中很好地工作,重新詛咒員工表並建立傳遞給它的員工ID的擴展列表以及所有直接和間接報告。修改CTE引用另一個字段?
我試圖讓一個妹妹CTE使用的用戶名,而不是員工ID,但我沒有得到任何數據傳回後,我所做的更改...
這裏是employeeID
我的工作代碼,如何能我得到這個與NTID
(員工)和managerNTID
(經理)工作
CREATE FUNCTION fnGetEmployeeHierarchy
(
@EmployeeId int = null
)
RETURNS TABLE
AS
RETURN
(
WITH yourcte AS
(
SELECT EmployeeId, ManagerID, NTID, FullName--, Name
FROM Employees
WHERE EmployeeId = isnull(@EmployeeId,EmployeeId)
UNION ALL
SELECT e.EmployeeId, e.ManagerID, e.NTID, e.FullName--, e.Name
FROM Employees e
JOIN yourcte y ON e.ManagerID = y.EmployeeId
)
SELECT EmployeeId, ManagerID, NTID, FullName--, Name
FROM yourcte
)
我修正了這一行:WHERE NTID = ISNULL(@EmployeeNTID,EmployeeNTID),因此它是:WHERE NTID = ISNULL(@UserName,NTID),因爲employeeID和managerID之間的非法關係實際上是NTID和managerNTID。即使這個固定我得到語法錯誤。想法? – kacalapy 2010-12-06 18:24:25