--CREATE FUNCTION dbo.ufn_FindReports
--(@InEmpID INTEGER)
--RETURNS @retFindReports TABLE
--(
-- EmployeeID int primary key NOT NULL,
-- FirstName nvarchar(255) NOT NULL,
-- LastName nvarchar(255) NOT NULL,
-- JobTitle nvarchar(50) NOT NULL
--)
--AS
--BEGIN
--WITH EMP_cte(EmployeeID, OrganizationNode, FirstName, LastName, JobTitle, RecursionLevel) -- CTE name and columns
-- AS (
-- SELECT e.EmployeeID, e.ManagerID, p.FirstName, p.LastName, P.JobTitle, 0 -- Get the initial list of Employees for Manager n
-- FROM HumanResources.Employee e
--INNER JOIN Person.Person p
--ON p.Employeeid = e.EmployeeID
-- WHERE e.EmployeeID = @InEmpID
-- UNION ALL
-- SELECT e.EmployeeID, e.ManagerID, p.FirstName, p.LastName, P.JobTitle, RecursionLevel + 1 -- Join recursive member to anchor
-- FROM HumanResources.Employee e
-- INNER JOIN EMP_cte
-- ON e.ORGANIZATIONNODE.GetAncestor(1) = EMP_cte.OrganizationNode
--INNER JOIN Person.Person p
--ON p.Employeeid= e.EmployeeID
-- )
-- INSERT @retFindReports
-- SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
-- FROM EMP_cte
-- RETURN
--END;
--GO
>
source
share