Зібрати BMW?
У цій вправі ви дасте відповідь на запитання: якою є загальна потрібна кількість Total кожної комплектувальної деталі, щоб зібрати автомобіль до 3 рівня в ієрархії?
Ваше завдання — створити CTE construction_Plan, щоб відстежувати рівень компонентів і обчислювати загальну кількість компонентів у полі Total. Таблиця має поля PartID, SubPartID, Level, Component і Total. Вам потрібно врахувати всі компоненти, починаючи з рівня 1 і до рівня 3.
Ця вправа є частиною курсу
Ієрархічні та рекурсивні запити в SQL Server
Інструкції до вправи
- Визначте
construction_Planз потрібними полями. - Ініціалізуйте
TotalзначеннямQuantityв опорному елементіCTE. - Збільшуйте
TotalнаQuantityдочірнього елемента в рекурсивному елементі. - Використайте
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;