เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ใครคือผู้จัดการของคุณ?

ในแบบฝึกหัดนี้ เราจะใช้ชุดข้อมูลขององค์กรด้านไอที ซึ่งเก็บอยู่ในตาราง employee ตารางนี้มีฟิลด์ ID (รหัสพนักงาน), Name (ชื่อพนักงาน) และ Supervisor (รหัสของผู้บังคับบัญชา)

องค์กรด้านไอทีนี้ประกอบด้วยหลายบทบาทและหลายระดับชั้น

A section of the entire hierarchy

องค์กรมี IT director หนึ่งคน (ID=1, Heinz Griesser, Supervisor=0) ซึ่งมีพนักงานใต้บังคับบัญชาหลายคน ภายใต้ IT director จะพบ IT architecture manager (ID=10, Andreas Sternig, Supervisor=1) ซึ่งมีพนักงานใต้บังคับบัญชา 3 คน โดย Andreas Sternig มี Supervisor=1 ซึ่งตรงกับ ID ของ IT director

เราต้องการตอบคำถามแรกนี้: ใครเป็นผู้บังคับบัญชาของพนักงานแต่ละคน?

เราจะแก้ปัญหานี้ด้วยการคิวรีชุดข้อมูลแบบ recursive

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Hierarchical and Recursive Queries in SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง CTE ชื่อ employee_hierarchy
  • เลือกข้อมูลของ IT director เป็น initial step ของ CTE โดยกรองจาก Supervisor ID ของเขา
  • ทำ join กับตาราง employee เพื่อดึงชื่อของผู้จัดการออกมา

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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.___;
แก้ไขและรันโค้ด