BMW को असेंबल करें?
इस अभ्यास में, आप यह प्रश्न हल करेंगे: लेवल 3 तक की hierarchy में कार बनाने के लिए हर कंपोनेंट की कुल आवश्यक मात्रा Total क्या है?
आपका कार्य construction_Plan नाम की CTE बनाना है ताकि कंपोनेंट्स के लेवल को ट्रैक किया जा सके और फ़ील्ड Total में कंपोनेंट्स की कुल मात्रा निकाली जा सके। टेबल के फ़ील्ड हैं: PartID, SubPartID, Level, Component, और Total। आपको लेवल 1 से लेकर लेवल 3 तक के सभी कंपोनेंट्स पर विचार करना है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Hierarchical और Recursive Queries
अभ्यास निर्देश
- आवश्यक फ़ील्ड्स के साथ
construction_Planपरिभाषित करें। CTEके anchor एलिमेंट मेंTotalकोQuantityसे initialize करें।- recursion एलिमेंट में child एलिमेंट की
QuantityसेTotalबढ़ाएँ। - hierarchy के IDs पर aggregated जानकारी के लिए
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;