開始使用免費開始

要組一台 BMW?

在這個練習中,你要回答這個問題:在階層到第 3 層之前,組裝汽車所需的每個元件總數量 Total 是多少?

你的任務是建立 CTE construction_Plan,用來追蹤元件的層級,並在欄位 Total 中計算元件的總數量。資料表包含欄位 PartIDSubPartIDLevelComponentTotal。你需要納入從第 1 層到第 3 層的所有元件。

本練習屬於課程

SQL Server 的階層式與遞迴查詢

檢視課程

練習說明

  • 定義具備所需欄位的 construction_Plan
  • CTE 的錨點(anchor)元素中,以 Quantity 初始化 Total
  • 在遞迴元素中,將子元素的 Quantity 累加到 Total
  • 使用 SUM() 針對階層中各 ID 的彙總資訊,計算 Total 的總和。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- 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;
編輯並執行程式碼