BMW를 조립해 볼까요?
이 연습 문제에서 다음 질문에 답해 보겠습니다. 계층 구조에서 레벨 3까지 자동차를 조립하려면 각 부품의 총 필요 수량 Total은 얼마인가요?
여러분의 작업은 구성 요소의 레벨을 추적하고 Total 필드에서 구성 요소의 총 수량을 계산하기 위한 CTE construction_Plan을 만드는 것입니다. 이 테이블은 PartID, SubPartID, Level, Component, Total 필드로 구성되어 있습니다. 레벨 1부터 레벨 3까지의 모든 구성 요소를 고려해야 합니다.
이 연습은 강의의 일부입니다
SQL Server에서의 계층형 및 재귀 쿼리
연습 안내
- 필요한 필드로
construction_Plan을 정의하세요. CTE의 앵커 요소에서Total을Quantity로 초기화하세요.- 재귀 요소에서 하위 요소의
Quantity를Total에 누적하세요. - 계층의 ID를 기준으로 집계된 정보에서
Total의 합을 만들기 위해SUM()을 사용하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- 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;