Chi è il tuo responsabile?
In questo esercizio useremo l'insieme di dati di un'organizzazione IT fornito nella tabella employee. La tabella contiene i campi ID (numero identificativo dell'impiegato), Name (nome dell'impiegato) e Supervisor (numero identificativo del responsabile).
L'organizzazione IT è composta da diversi ruoli e livelli.

L'organizzazione ha un direttore IT (ID=1, Heinz Griesser, Supervisor=0) con molti dipendenti subordinati. Sotto il direttore IT trovi il responsabile dell'architettura IT (ID=10, Andreas Sternig, Supervisor=1) con tre dipendenti subordinati. Per Andreas Sternig Supervisor=1, che è l'ID del direttore IT.
Per prima cosa vogliamo rispondere alla domanda: Chi sono i responsabili di ciascun impiegato?
Risolviamo il problema interrogando ricorsivamente l'insieme di dati.
Questo esercizio fa parte del corso
Query gerarchiche e ricorsive in SQL Server
Istruzioni dell'esercizio
- Crea una CTE con il nome
employee_hierarchy. - Seleziona le informazioni del direttore IT come passo iniziale della CTE filtrando sul suo
SupervisorID. - Esegui un join con
employeeper ottenere il nome del responsabile.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
-- 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.___;