MulaiMulai sekarang secara gratis

Siapa atasan saya?

Dalam latihan ini, kita ingin mendapatkan jalur dari atasan di puncak hierarki hingga karyawan di bagian bawah hierarki. Untuk tugas ini, kita harus menggabungkan informasi yang diperoleh pada setiap langkah ke dalam satu field. Anda dapat melakukannya dengan menggabungkan ID menggunakan CAST() dari tipe number ke string. Contohnya adalah CAST(ID AS VARCHAR(MAX)) untuk mengonversi ID bertipe number menjadi tipe char.

Tugasnya sekarang adalah menemukan jalur untuk karyawan Chris Feierabend dengan ID=18 dan Jasmin Mentil dengan ID=16 sampai ke puncak organisasi. Keluaran harus terlihat seperti ini: boss_first_level -> boss_second_level .... ID karyawan, bukan nama mereka, yang harus dipilih.

Latihan ini adalah bagian dari kursus

Kueri Hierarkis dan Rekursif di SQL Server

Lihat Kursus

Petunjuk latihan

  • Inisialisasi Path ke ID atasan (0) dan kondisi awal rekursi.
  • UNION anchor member dan definisikan field recursive member (ID, Name, Supervisor).
  • Tambahkan ID atasan Supervisor ke Path pada setiap langkah.
  • Pilih ID karyawan Chris Feierabend dan Jasmin Mentil di CTE.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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