Kom igångKom igång gratis

Sätta ihop en BMW?

I den här övningen ska du besvara följande fråga: Hur stor är den totala mängden Total av varje komponent som krävs för att bygga bilen upp till nivå 3 i hierarkin?

Din uppgift är att skapa CTE:n construction_Plan för att spåra komponenternas nivå och beräkna den totala mängden komponenter i fältet Total. Tabellen byggs upp av fälten PartID, SubPartID, Level, Component och Total. Du ska ta hänsyn till alla komponenter från nivå 1 upp till och med nivå 3.

Den här övningen är en del av kursen

Hierarkiska och rekursiva frågor i SQL Server

Visa kurs

Övningsinstruktioner

  • Definiera construction_Plan med de nödvändiga fälten.
  • Initiera Total med Quantity i ankarelementet i CTE.
  • Öka Total med Quantity från det underordnade elementet i rekursionselementet.
  • Använd SUM() för att beräkna summan av Total baserat på den aggregerade informationen om ID:n i hierarkin.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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;
Redigera och kör kod