UDF SQL Server 2005 для создания табличных данных типа самоссылающихся табличных данных - PullRequest
1 голос
/ 03 декабря 2010

У меня есть типичная таблица собственных ссылок сотрудников.

Как вы можете построить UDF для возврата типа данных таблицы, который можно использовать в других запросах для присоединения к такому, что я передаю UDF aid пользователя в таблице и получите результат этого пользователя id и всех пользователей, связанных с ним через managerId?

У меня есть таблица EmployeeId, ManagerID, Name ....

Все, что мне нужно, это передать EmployeeId и получить рекурсивный результат всех записей, чей ManagerID является идентификатором переданного в параметре, и любой из записей, которые имеют их как менеджеры, и так далее...

спасибо

1 Ответ

1 голос
/ 03 декабря 2010
CREATE FUNCTION GetEmployees  
(  
  @EmployeeId int
)
RETURNS TABLE 
AS
RETURN 
(
  WITH yourcte AS
  (
    SELECT EmployeeId, ManagerID, Name
    FROM Employees
    WHERE EmployeeId = @EmployeeId
    UNION ALL
    SELECT e.EmployeeId, e.ManagerID, e.Name
    FROM Employees e
    JOIN yourcte y ON e.ManagerID = y.EmployeeId
  )
SELECT EmployeeId, ManagerID, Name
FROM yourcte
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...