<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://dbshelp.devio.at/index.php?action=history&amp;feed=atom&amp;title=Dbo.uspGetEmployeeManagersprocedure</id>
		<title>Dbo.uspGetEmployeeManagersprocedure - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://dbshelp.devio.at/index.php?action=history&amp;feed=atom&amp;title=Dbo.uspGetEmployeeManagersprocedure"/>
		<link rel="alternate" type="text/html" href="http://dbshelp.devio.at/index.php?title=Dbo.uspGetEmployeeManagersprocedure&amp;action=history"/>
		<updated>2026-05-03T07:04:19Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://dbshelp.devio.at/index.php?title=Dbo.uspGetEmployeeManagersprocedure&amp;diff=2558&amp;oldid=prev</id>
		<title>Bot: New page: == wikibot ==  {| border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse&quot; |- valign=&quot;top&quot; | '''Procedure | dbo.uspGetEmployeeManagers |- valign=&quot;top&quot; | '''Description |...</title>
		<link rel="alternate" type="text/html" href="http://dbshelp.devio.at/index.php?title=Dbo.uspGetEmployeeManagersprocedure&amp;diff=2558&amp;oldid=prev"/>
				<updated>2010-06-23T22:07:49Z</updated>
		
		<summary type="html">&lt;p&gt;New page: == wikibot ==  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot; |- valign=&amp;quot;top&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Procedure | dbo.uspGetEmployeeManagers |- valign=&amp;quot;top&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Description |...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== wikibot ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| '''Procedure&lt;br /&gt;
| dbo.uspGetEmployeeManagers&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| '''Description&lt;br /&gt;
| Stored procedure using a recursive query to return the direct and indirect managers of the specified employee.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE PROCEDURE [dbo].[uspGetEmployeeManagers]&lt;br /&gt;
    @EmployeeID [int]&lt;br /&gt;
AS&lt;br /&gt;
BEGIN&lt;br /&gt;
    SET NOCOUNT ON;&lt;br /&gt;
&lt;br /&gt;
    -- Use recursive query to list out all Employees required for a particular Manager&lt;br /&gt;
    WITH [EMP_cte]([EmployeeID], [ManagerID], [FirstName], [LastName], [Title], [RecursionLevel]) -- CTE name and columns&lt;br /&gt;
    AS (&lt;br /&gt;
        SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], e.[Title], 0 -- Get the initial Employee&lt;br /&gt;
        FROM [HumanResources].[Employee] e &lt;br /&gt;
            INNER JOIN [Person].[Contact] c &lt;br /&gt;
            ON e.[ContactID] = c.[ContactID]&lt;br /&gt;
        WHERE e.[EmployeeID] = @EmployeeID&lt;br /&gt;
        UNION ALL&lt;br /&gt;
        SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], e.[Title], [RecursionLevel] + 1 -- Join recursive member to anchor&lt;br /&gt;
        FROM [HumanResources].[Employee] e &lt;br /&gt;
            INNER JOIN [EMP_cte]&lt;br /&gt;
            ON e.[EmployeeID] = [EMP_cte].[ManagerID]&lt;br /&gt;
            INNER JOIN [Person].[Contact] c &lt;br /&gt;
            ON e.[ContactID] = c.[ContactID]&lt;br /&gt;
    )&lt;br /&gt;
    -- Join back to Employee to return the manager name &lt;br /&gt;
    SELECT [EMP_cte].[RecursionLevel], [EMP_cte].[EmployeeID], [EMP_cte].[FirstName], [EMP_cte].[LastName], &lt;br /&gt;
        [EMP_cte].[ManagerID], c.[FirstName] AS 'ManagerFirstName', c.[LastName] AS 'ManagerLastName'  -- Outer select from the CTE&lt;br /&gt;
    FROM [EMP_cte] &lt;br /&gt;
        INNER JOIN [HumanResources].[Employee] e &lt;br /&gt;
        ON [EMP_cte].[ManagerID] = e.[EmployeeID]&lt;br /&gt;
        INNER JOIN [Person].[Contact] c &lt;br /&gt;
        ON e.[ContactID] = c.[ContactID]&lt;br /&gt;
    ORDER BY [RecursionLevel], [ManagerID], [EmployeeID]&lt;br /&gt;
    OPTION (MAXRECURSION 25) &lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
| '''Dependency Type&lt;br /&gt;
| '''Object Type&lt;br /&gt;
| '''Referenced Object&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Select&lt;br /&gt;
| Table&lt;br /&gt;
| [[HumanResources.Employee_(table)|HumanResources.Employee]]&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Select&lt;br /&gt;
| Table&lt;br /&gt;
| [[Person.Contact_(table)|Person.Contact]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	</feed>