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

Lắp ráp một chiếc BMW?

Trong bài tập này, bạn sẽ trả lời câu hỏi: Tổng số lượng yêu cầu Total của mỗi linh kiện để lắp chiếc xe đến cấp 3 trong hệ phân cấp là bao nhiêu?

Nhiệm vụ của bạn là tạo CTE construction_Plan để theo dõi cấp độ của các linh kiện và tính tổng số lượng linh kiện trong trường Total. Bảng được thiết lập với các trường PartID, SubPartID, Level, ComponentTotal. Bạn cần xét tất cả các linh kiện từ cấp 1 đến cấp 3.

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

  • Định nghĩa construction_Plan với các trường cần thiết.
  • Khởi tạo Total bằng Quantity trong phần neo (anchor) của CTE.
  • Tăng Total bằng Quantity của phần tử con trong phần đệ quy.
  • Dùng SUM() để tính tổng Total trên thông tin đã được tổng hợp theo các ID trong hệ phân cấp.

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.

-- Define CTE with the fields: PartID, SubPartID, Level, Component, Total
WITH ___ (___, ___, ___, ___, ___) AS (
	SELECT 
  		PartID,SubPartID,
  		0,
  		Component,
  		-- Initialize Total
  		___
	FROM partList
	WHERE PartID = '1'
	UNION ALL
	SELECT 
		CHILD.PartID, CHILD.SubPartID,
  		PARENT.Level + 1,
  		CHILD.Component,
  		-- Increase Total by the quantity of the child element
  		PARENT.___ + CHILD.___
	FROM construction_Plan PARENT, partList CHILD
  	WHERE CHILD.SubPartID = PARENT.PartID
	  AND PARENT.Level < 3)
      
SELECT 
    PartID, SubPartID,Component,
    -- Calculate the sum of total on the aggregated information
    ___(___)
FROM construction_Plan
GROUP BY PartID, SubPartID, Component
ORDER BY PartID, SubPartID;
Chỉnh sửa và Chạy Mã