Bắt đầu ngayBắt đầu miễn phí

Ai là quản lý của bạn?

Trong bài tập này, bạn sẽ sử dụng bộ dữ liệu của một tổ chức IT được cung cấp trong bảng employee. Bảng này có các trường ID (mã nhân viên), Name (tên nhân viên) và Supervisor (mã người quản lý).

Tổ chức IT gồm nhiều vai trò và cấp bậc khác nhau.

A section of the entire hierarchy

Tổ chức có một giám đốc IT (ID=1, Heinz Griesser, Supervisor=0) với nhiều nhân viên cấp dưới. Dưới giám đốc IT là quản lý kiến trúc IT (ID=10, Andreas Sternig, Supervisor=1) với ba nhân viên cấp dưới. Với Andreas Sternig, Supervisor=1 chính là ID của giám đốc IT.

Đầu tiên, chúng ta muốn trả lời câu hỏi: Người quản lý (supervisor) của mỗi nhân viên là ai?

Chúng ta sẽ giải quyết vấn đề này bằng cách truy vấn đệ quy trên bộ dữ liệu.

Bài tập này là một phần của khóa học

Truy vấn phân cấp và đệ quy trong SQL Server

Xem khóa học

Hướng dẫn bài tập

  • Tạo một CTE tên là employee_hierarchy.
  • Chọn thông tin của giám đốc IT làm bước khởi đầu của CTE bằng cách lọc theo ID Supervisor của ông ấy.
  • Thực hiện join với employee để lấy tên của người quản lý.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

-- 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.___;
Chỉnh sửa và Chạy Mã