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
Övningsinstruktioner
- Definiera
construction_Planmed de nödvändiga fälten. - Initiera
TotalmedQuantityi ankarelementet iCTE. - Öka
TotalmedQuantityfrån det underordnade elementet i rekursionselementet. - Använd
SUM()för att beräkna summan avTotalbaserat 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;