Creează lista de materiale a unei mașini
În acest exercițiu, vei răspunde la următoarea întrebare: Care sunt nivelurile diferitelor componente care alcătuiesc o mașină?
De exemplu, un SUV (nivelul 1) este compus dintr-un motor (nivelul 2) și o caroserie (nivelul 2), iar caroseria este formată dintr-o ușă (nivelul 3) și o capotă (nivelul 3).
Sarcina ta este să creezi o interogare care să determine nivelul ierarhic al tabelei partList. Trebuie să creezi CTE-ul construction_Plan și să urmărești poziția fiecărei componente în ierarhie. Urmărește toate componentele începând de la nivelul 1 până la nivelul 2.
Acest exercițiu face parte din cursul
Interogări ierarhice și recursive în SQL Server
Instrucțiuni pentru exercițiu
- Definește
construction_Plancu câmpurile:PartID,SubPartID,Title,ComponentșiLevel. - Inițializează câmpul
Levelcu valoarea 1. - Mărește
Levelcu 1 la fiecare pas de recursivitate. - Limitează numărul de pași (
Level) la valori mai mici decât2.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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;