Kom igångKom igång gratis

Vem är din chef?

I den här övningen använder vi datamängden från en IT-organisation som finns i tabellen employee. Tabellen innehåller fälten ID (den anställdes ID-nummer), Name (den anställdes namn) och Supervisor (handledarens ID-nummer).

IT-organisationen består av olika roller och nivåer.

En del av hela hierarkin

Organisationen har en IT-direktör (ID=1, Heinz Griesser, Supervisor=0) med många underordnade anställda. Under IT-direktören finns IT-arkitekturchefen (ID=10, Andreas Sternig, Supervisor=1) med tre underordnade anställda. För Andreas Sternig gäller att Supervisor=1, vilket är ID för IT-direktören.

Först vill vi besvara frågan: Vilka är handledarna för varje anställd?

Vi löser det här problemet genom att rekursivt fråga mot datamängden.

Den här övningen är en del av kursen

Hierarkiska och rekursiva frågor i SQL Server

Visa kurs

Övningsinstruktioner

  • Skapa en CTE med namnet employee_hierarchy.
  • Välj information om IT-direktören som det inledande steget i CTE:n genom att filtrera på hans Supervisor-ID.
  • Utför en join med employee för att hämta chefens namn.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- Create the CTE employee_hierarchy
WITH ___ AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor
	FROM employee
  	-- Start with the IT Director
	WHERE ___ = ___
	UNION ALL
	SELECT 
  		emp.ID,
  		emp.NAME,
  		emp.Supervisor
	FROM employee emp
  		JOIN employee_hierarchy
  		ON emp.Supervisor = employee_hierarchy.ID)
    
SELECT 
    cte.Name as EmployeeName,
    emp.Name as ManagerName
FROM employee_hierarchy as cte
	JOIN employee as emp
	-- Perform the JOIN on Supervisor and ID
	ON cte.___ = emp.___;
Redigera och kör kod