Создание спецификации материалов автомобиля
В этом упражнении вы ответите на вопрос: каков уровень иерархии различных компонентов, из которых собирается автомобиль?
Например, внедорожник (1-й уровень) состоит из двигателя (2-й уровень) и кузова (2-й уровень), а кузов — из двери (3-й уровень) и капота (3-й уровень).
Ваша задача — написать запрос, который определяет уровень иерархии для таблицы partList. Необходимо создать CTE construction_Plan и отслеживать положение каждого компонента в иерархии. Охватите все компоненты начиная с уровня 1 и заканчивая уровнем 2.
Это упражнение является частью курса
Иерархические и рекурсивные запросы в SQL Server
Инструкции к упражнению
- Определите
construction_Planс полями:PartID,SubPartID,Title,ComponentиLevel. - Инициализируйте поле
Levelзначением 1. - Увеличивайте
Levelна 1 на каждом шаге рекурсии. - Ограничьте количество шагов (
Level) значением меньше2.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Define CTE with the fields: PartID, SubPartID, Title, Component, Level
___ construction_Plan (___, ___,___, ___, ___) AS (
SELECT
PartID,
SubPartID,
Title,
Component,
-- Initialize the field Level
___
FROM partList
WHERE PartID = '1'
UNION ALL
SELECT
CHILD.PartID,
CHILD.SubPartID,
CHILD.Title,
CHILD.Component,
-- Increment the field Level each recursion step
PARENT.___ + ___
FROM construction_Plan PARENT, partList CHILD
WHERE CHILD.SubPartID = PARENT.PartID
-- Limit the number of iterations to Level < 2
AND PARENT.___ < ___)
SELECT DISTINCT PartID, SubPartID, Title, Component, Level
FROM construction_Plan
ORDER BY PartID, SubPartID, Level;