Een BMW opbouwen?
In deze oefening beantwoord je de volgende vraag: Wat is de totale benodigde hoeveelheid Total van elk onderdeel om de auto tot en met niveau 3 in de hiërarchie te bouwen?
Je taak is om de CTE construction_Plan te maken om het niveau van onderdelen bij te houden en om de totale hoeveelheid onderdelen in het veld Total te berekenen. De tabel bestaat uit de velden PartID, SubPartID, Level, Component en Total. Je moet alle onderdelen meenemen vanaf niveau 1 tot en met niveau 3.
Deze oefening maakt deel uit van de cursus
Hiërarchische en recursieve queries in SQL Server
Oefeninstructies
- Definieer
construction_Planmet de benodigde velden. - Initialiseer
TotalmetQuantityin het ankerdeel van deCTE. - Verhoog
Totalmet deQuantityvan het kindelement in het recursieve deel. - Gebruik
SUM()om de som vanTotalte maken op de geaggregeerde informatie over ID’s in de hiërarchie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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;