Соберём 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;