НачатьНачать бесплатно

Создание спецификации материалов автомобиля

В этом упражнении вы ответите на вопрос: каков уровень иерархии различных компонентов, из которых собирается автомобиль?

Например, внедорожник (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;
Редактировать и запускать код