Créer une nomenclature de voiture
Dans cet exercice, vous allez répondre à la question suivante : Quels sont les niveaux des différents composants qui constituent une voiture ?
Par exemple, un SUV (niveau 1) est composé d’un moteur (niveau 2) et d’une carrosserie (niveau 2), et la carrosserie est composée d’une porte (niveau 3) et d’un capot (niveau 3).
Votre tâche est de créer une requête pour obtenir le niveau hiérarchique de la table partList. Vous devez créer la CTE construction_Plan et suivre la position d’un composant dans la hiérarchie. Suivez tous les composants en partant du niveau 1 jusqu’au niveau 2.
Cet exercice fait partie du cours
<cours>Requêtes hiérarchiques et récursives dans SQL Server</cours>Instructions de l’exercice
- Définissez
construction_Planavec les champs :PartID,SubPartID,Title,ComponentetLevel. - Initialisez le champ
Levelà 1. - Augmentez
Levelde 1 à chaque étape de récursion. - Limitez le nombre d’étapes (
Level) à une valeur inférieure à2.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- 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;