SQL Server 2005 UDFを作成する自己参照テーブルデータのテーブルデータタイプを作成する

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

質問

従業員の典型的な自己参照表があります。

UDFを構築して、他のクエリで使用してUDFを渡すように結合できるテーブルデータタイプを返すにはどうすればよいですか id テーブル内のユーザーのうち、そのユーザーの結果を取得します id そして、すべてのユーザーが彼にリンクしました managerId?

私が持っているテーブルはです EmployeeId, ManagerID, Name....

必要なのは、渡すことだけです EmployeeId そして、すべてのレコードの再帰結果を得る ManagerID PARAMで渡されたIDであり、これらをマネージャーとして持っているレコードのいずれかなど...

ありがとう

役に立ちましたか?

解決

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
)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top