SQL Server 2005 UDF pour faire une table de données de type de données de table faisant référence auto

StackOverflow https://stackoverflow.com/questions/4347764

Question

J'ai une table auto-référencement typique des employés.

Comment pouvez-vous construire une UDF pour retourner une table de données de type qui peut être utilisé dans d'autres requêtes à se joindre à ce que je passe l'UDF une id d'un utilisateur dans la table et obtenir un résultat de id de cet utilisateur et tous les utilisateurs liés à lui par un managerId?

Le tableau que j'ai est EmployeeId, ManagerID, Name ....

Tout ce que je besoin est de passer un EmployeeId et obtenir un résultat récurrent de tous les dossiers qui est ManagerID est l'id du passé dans param, et l'un des dossiers qui ont ces en tant que gestionnaires, et ainsi de suite ...

Merci

Était-ce utile?

La solution

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
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top