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

Tạo bill of material (BOM) cho một chiếc xe

Trong bài tập này, bạn sẽ trả lời câu hỏi: Các cấp độ của những bộ phận tạo nên một chiếc xe là gì?

Ví dụ, một chiếc SUV (cấp 1) được cấu thành từ động cơ (cấp 2) và thân xe (cấp 2); thân xe lại gồm cửa (cấp 3) và nắp capo (cấp 3).

Nhiệm vụ của bạn là viết truy vấn để lấy cấp độ phân cấp của bảng partList. Bạn cần tạo CTE construction_Plan và theo dõi vị trí của một bộ phận trong hệ phân cấp. Theo dõi tất cả các bộ phận bắt đầu từ cấp 1 đến cấp 2.

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: PartID, SubPartID, Title, ComponentLevel.
  • Khởi tạo trường Level bằng 1.
  • Tăng Level thêm 1 ở mỗi bước đệ quy.
  • Giới hạn số bước (Level) nhỏ hơn 2.

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, Title, Component, Level
___ construction_Plan (___, ___,___, ___, ___) AS (
	SELECT 
  		PartID,
  		SubPartID,
  		Title,
  		Component,
  		-- Initialize the field Level
  		___
	FROM partList
	WHERE PartID = '1'
	UNION ALL
	SELECT 
		CHILD.PartID, 
  		CHILD.SubPartID,
  		CHILD.Title,
  		CHILD.Component,
  		-- Increment the field Level each recursion step
  		PARENT.___ + ___
	FROM construction_Plan PARENT, partList CHILD
  	WHERE CHILD.SubPartID = PARENT.PartID
  	-- Limit the number of iterations to Level < 2
	  AND PARENT.___ < ___)

SELECT DISTINCT PartID, SubPartID, Title, Component, Level
FROM construction_Plan
ORDER BY PartID, SubPartID, Level;
Chỉnh sửa và Chạy Mã