रखरखाव के लिए पावर लाइनों की सूची पाएँ
दी गई GridStructure टेबल में, लाइनों के बीच कनेक्शन को बताने वाले फ़ील्ड (EquipmentID,EquipmentID_To,EquipmentID_From) और लाइनों की विशेषताएँ (जैसे Description, ConditionAssessment, VoltageLevel) पहले से परिभाषित हैं.
अब, आपका कार्य EquipmentID = 3 वाली लाइन से जुड़ी हुई उन लाइनों को खोजना है जिनका ConditionAssessment bad या repair है और जिनका VoltageLevel HV के बराबर है. ऐसा करके आप निम्न प्रश्न का उत्तर दे पाएँगे:
उनके विवरण और मौजूदा स्थिति के आधार पर किन लाइनों को बदला या मरम्मत किया जाना चाहिए?
आपको connected लाइनों को खोजने के लिए एक CTE बनाना है और अंत में वांछित विशेषताओं पर फ़िल्टर करना है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Hierarchical और Recursive Queries
अभ्यास निर्देश
- CTE
maintenance_Listपरिभाषित करें. - लाइन 3 के लिए evaluation शुरू करें.
- संबंधित endpoints पर
GridStructureकोmaintenance_Listसे join करें. LIKEका उपयोग करके उन पावर लाइनों को फ़िल्टर करें जिनकाConditionAssessmentexchangeयाrepairमें से एक है, औरVoltageLevelHVहै.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- Define the table CTE
___ ___ (Line, Destination, Source, Description, ConditionAssessment, VoltageLevel) ___ (
SELECT
EquipmentID,
EquipmentID_To,
EquipmentID_From,
Description,
ConditionAssessment,
VoltageLevel
FROM GridStructure
-- Start the evaluation for line 3
___ EquipmentID = ___
UNION ALL
SELECT
Child.EquipmentID,
Child.EquipmentID_To,
Child.EquipmentID_FROM,
Child.Description,
Child.ConditionAssessment,
Child.VoltageLevel
FROM GridStructure Child
-- Join GridStructure with CTE on the corresponding endpoints
___ maintenance_List
ON maintenance_List.Line = Child.___)
SELECT Line, Description, ConditionAssessment
FROM maintenance_List
-- Filter the lines based on ConditionAssessment and VoltageLevel
WHERE
(ConditionAssessment ___ '%exchange%' ___ ConditionAssessment ___ '%repair%') ___
VoltageLevel LIKE '%HV%'