Aan de slagGa gratis aan de slag

Wie is jouw manager?

In deze oefening gebruiken we de gegevensset van een IT-organisatie die beschikbaar is in de tabel employee. De tabel bevat de velden ID (ID-nummer van de medewerker), Name (de naam van de medewerker) en Supervisor (ID-nummer van de leidinggevende).

De IT-organisatie bestaat uit verschillende rollen en niveaus.

A section of the entire hierarchy

De organisatie heeft één IT-directeur (ID=1, Heinz Griesser, Supervisor=0) met veel ondergeschikten. Onder de IT-directeur vind je de IT-architectuurmanager (ID=10, Andreas Sternig, Supervisor=1) met drie ondergeschikte medewerkers. Voor Andreas Sternig is Supervisor=1, wat het ID is van de IT-directeur.

Eerst willen we de vraag beantwoorden: Wie zijn de leidinggevenden van elke medewerker?

We gaan dit probleem oplossen door de gegevensset recursief te bevragen.

Deze oefening maakt deel uit van de cursus

Hiërarchische en recursieve queries in SQL Server

Cursus bekijken

Oefeninstructies

  • Maak een CTE met de naam employee_hierarchy.
  • Selecteer de informatie van de IT-directeur als eerste stap van de CTE door te filteren op zijn Supervisor-ID.
  • Voer een join uit met employee om de naam van de manager op te halen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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.___;
Code bewerken en uitvoeren