ÎncepețiÎncepe gratuit

Cine este managerul tău?

În acest exercițiu, vom folosi setul de date al unei organizații IT, disponibil în tabela employee. Tabela conține câmpurile ID (numărul de identificare al angajatului), Name (numele angajatului) și Supervisor (numărul de identificare al supervizorului).

Organizația IT este formată din roluri și niveluri diferite.

A section of the entire hierarchy

Organizația are un singur director IT (ID=1, Heinz Griesser, Supervisor=0) cu mai mulți angajați subordonați. Sub directorul IT se află managerul de arhitectură IT (ID=10, Andreas Sternig, Supervisor=1), cu trei angajați subordonați. Pentru Andreas Sternig, Supervisor=1 reprezintă ID-ul directorului IT.

În primul rând, vrem să răspundem la întrebarea: Cine sunt supervizorii fiecărui angajat?

Vom rezolva această problemă interogând recursiv setul de date.

Acest exercițiu face parte din cursul

Interogări ierarhice și recursive în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un CTE cu numele employee_hierarchy.
  • Selectează informațiile despre directorul IT ca pas inițial al CTE-ului, filtrând după Supervisor-ul său.
  • Realizează un join cu employee pentru a obține numele managerului.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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.___;
Editează și rulează codul