У меня есть CTE ниже, хорошо работающий в пересмотре таблицы сотрудников и создании расширенного списка идентификаторов сотрудников, переданных ему, а также всех прямых и косвенных отчетов.
Я пытаюсь заставить сестру CTE использовать имя пользователя вместо идентификатора сотрудника, но я не получаю никаких данных после внесения изменений ...
Вот мой рабочий код с 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
)