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

Соберём 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;
Редактировать и запускать код