Asamblează un BMW?
În acest exercițiu, vei răspunde la următoarea întrebare: Care este cantitatea totală necesară Total din fiecare componentă pentru a construi mașina până la nivelul 3 din ierarhie?
Sarcina ta este să creezi CTE-ul construction_Plan pentru a urmări nivelul componentelor și a calcula cantitatea totală a acestora în câmpul Total. Tabelul este structurat pe câmpurile PartID, SubPartID, Level, Component și Total. Trebuie să iei în considerare toate componentele începând de la nivelul 1 până la nivelul 3.
Acest exercițiu face parte din cursul
Interogări ierarhice și recursive în SQL Server
Instrucțiuni pentru exercițiu
- Definește
construction_Plancu câmpurile necesare. - Inițializează
Totalcu valoareaQuantityîn elementul ancoră alCTE. - Mărește
Totalcu valoareaQuantitya elementului copil în elementul de recursivitate. - Folosește
SUM()pentru a calcula suma luiTotalpe baza informațiilor agregate după ID-urile din ierarhie.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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;