Skapa en strukturlista för en bil
I den här övningen ska du besvara följande fråga: Vilka nivåer tillhör de olika komponenterna som bygger upp en bil?
Till exempel: en SUV (nivå 1) består av en motor (nivå 2) och en kaross (nivå 2), och karossen består av en dörr (nivå 3) och ett motorhuv (nivå 3).
Din uppgift är att skapa en fråga som hämtar hierarkinivån för tabellen partList. Du ska skapa CTE:n construction_Plan och hålla reda på positionen för varje komponent i hierarkin. Inkludera alla komponenter från nivå 1 upp till och med nivå 2.
Den här övningen är en del av kursen
Hierarkiska och rekursiva frågor i SQL Server
Övningsinstruktioner
- Definiera
construction_Planmed fälten:PartID,SubPartID,Title,ComponentochLevel. - Initiera fältet
Leveltill 1. - Öka
Levelmed 1 för varje rekursionssteg. - Begränsa antalet steg (
Level) till mindre än2.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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;