Bir BMW mü inşa edelim?
Bu egzersizde şu soruyu yanıtlayacaksın: Hiyerarşide seviye 3'e kadar arabayı inşa etmek için her bileşenin gerekli toplam miktarı Total nedir?
Görevin, bileşenlerin seviyesini izlemek ve Total alanında bileşenlerin toplam miktarını hesaplamak için construction_Plan adlı CTE'yi oluşturmak. Tablo PartID, SubPartID, Level, Component ve Total alanlarından oluşur. Seviye 1'den başlayarak seviye 3'e kadar tüm bileşenleri dikkate almalısın.
Bu egzersiz
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular
kursunun bir parçasıdırEgzersiz talimatları
- Gerekli alanlarla
construction_Plantanımla. CTEnin kök (anchor) öğesindeTotaldeğeriniQuantityile başlat.- Yineleme (recursion) öğesinde alt (child) öğenin
QuantitydeğeriniTotalüzerine ekle. - Hiyerarşideki ID'ler üzerinde toplanmış bilgiler için
Totaldeğerinin toplamını oluşturmak üzereSUM()kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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;