始める無料で始める

BMW を組み立てる?

この演習では、次の問いに答えます。階層のレベル3まででクルマを組み立てるために、各コンポーネントに必要な合計数量 Total はいくつですか?

あなたのタスクは、コンポーネントのレベルを追跡し、フィールド Total に各コンポーネントの合計数量を計算するための CTE construction_Plan を作成することです。テーブルは PartIDSubPartIDLevelComponentTotal の各フィールドで構成されています。レベル1からレベル3までのすべてのコンポーネントを対象にしてください。

この演習はコースの一部です

SQL Server における階層型クエリと再帰クエリ

コースを見る

演習の手順

  • 必要なフィールドで construction_Plan を定義します。
  • CTE のアンカー要素で TotalQuantity で初期化します。
  • 再帰要素で子要素の QuantityTotal に加算していきます。
  • 階層の ID による集約情報に対して、SUM() を用いて 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;
コードを編集して実行