MulaiMulai sekarang secara gratis

Siapa manajer Anda?

Pada latihan ini, kita akan menggunakan himpunan data dari sebuah organisasi TI yang tersedia dalam tabel employee. Tabel ini memiliki kolom ID (nomor ID karyawan), Name (nama karyawan), dan Supervisor (nomor ID atasan).

Organisasi TI ini terdiri dari berbagai peran dan level.

A section of the entire hierarchy

Organisasi ini memiliki satu direktur TI (ID=1, Heinz Griesser, Supervisor=0) dengan banyak karyawan bawahan. Di bawah direktur TI terdapat manajer arsitektur TI (ID=10, Andreas Sternig, Supervisor=1) dengan tiga karyawan bawahan. Untuk Andreas Sternig, Supervisor=1 yang merupakan ID dari Direktur TI.

Pertama, kita ingin menjawab pertanyaan: Siapa atasan untuk setiap karyawan?

Kita akan menyelesaikan masalah ini dengan melakukan kueri rekursif pada himpunan data.

Latihan ini adalah bagian dari kursus

Kueri Hierarkis dan Rekursif di SQL Server

Lihat Kursus

Petunjuk latihan

  • Buat CTE dengan nama employee_hierarchy.
  • Pilih informasi direktur TI sebagai langkah awal CTE dengan memfilter berdasarkan ID Supervisor-nya.
  • Lakukan join dengan employee untuk mendapatkan nama manajer.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

-- 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.___;
Edit dan Jalankan Kode