Inizia subitoInizia gratis

Chi è il mio supervisore?

In questo esercizio vogliamo ottenere il percorso dal capo in cima alla gerarchia fino ai dipendenti in fondo alla gerarchia. Per questo compito, dobbiamo combinare in un unico campo le informazioni ottenute a ogni passaggio. Puoi farlo unendo gli ID usando CAST() per passare da numero a stringa. Ad esempio, CAST(ID AS VARCHAR(MAX)) converte ID di tipo numerico in tipo char.

Il compito ora è trovare il percorso per i dipendenti Chris Feierabend con ID=18 e Jasmin Mentil con ID=16 fino al vertice dell'organizzazione. L'output dovrebbe essere simile a: boss_first_level -> boss_second_level .... Devono essere selezionati gli ID dei dipendenti e non i loro nomi.

Questo esercizio fa parte del corso

Query gerarchiche e ricorsive in SQL Server

Visualizza corso

Istruzioni dell'esercizio

  • Inizializza Path all'ID del supervisore (0) e la condizione iniziale della ricorsione.
  • Esegui UNION con il membro di ancoraggio e definisci i campi del membro ricorsivo (ID, Name, Supervisor).
  • Aggiungi l'ID del supervisore Supervisor a Path a ogni passaggio.
  • Seleziona gli ID dei dipendenti Chris Feierabend e Jasmin Mentil nella CTE.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
Modifica ed esegui il codice