Zacznij terazZacznij za darmo

Kto jest twoim przełożonym?

W tym ćwiczeniu skorzystamy z danych pewnej organizacji IT, dostępnych w tabeli employee. Tabela zawiera pola: ID (numer identyfikacyjny pracownika), Name (imię i nazwisko pracownika) oraz Supervisor (numer identyfikacyjny przełożonego).

Organizacja IT składa się z różnych ról i poziomów hierarchii.

Fragment całej hierarchii

Organizacja ma jednego dyrektora IT (ID=1, Heinz Griesser, Supervisor=0) z wieloma podległymi pracownikami. Bezpośrednio pod nim znajduje się menedżer architektury IT (ID=10, Andreas Sternig, Supervisor=1) z trzema podwładnymi. Dla Andreasa Sterniga Supervisor=1, co odpowiada ID dyrektora IT.

Na początku chcemy odpowiedzieć na pytanie: Kto jest przełożonym każdego z pracowników?

Rozwiążemy ten problem, rekurencyjnie odpytując zbiór danych.

To ćwiczenie jest częścią kursu

Hierarchiczne i rekurencyjne zapytania w SQL Server

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz CTE o nazwie employee_hierarchy.
  • Wybierz dane dyrektora IT jako krok początkowy CTE, filtrując po jego ID w polu Supervisor.
  • Wykonaj złączenie z tabelą employee, aby pobrać imię i nazwisko przełożonego.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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.___;
Edytuj i uruchom kod