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.

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
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
employeeuntuk 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.___;