ค้นหาสายส่งไฟฟ้าที่ต้องบำรุงรักษา
ในตาราง GridStructure ที่กำหนดให้ มีฟิลด์ที่อธิบายการเชื่อมต่อระหว่างสายไฟ (EquipmentID, EquipmentID_To, EquipmentID_From) และคุณลักษณะของสายไฟ (เช่น Description, ConditionAssessment, VoltageLevel) ถูกกำหนดไว้เรียบร้อยแล้ว
โดยมีภารกิจในการค้นหาสายไฟที่เชื่อมต่อกับสายไฟที่มี EquipmentID = 3 ซึ่งมี ConditionAssessment เป็น bad หรือ repair และมี VoltageLevel เท่ากับ HV เพื่อตอบคำถามต่อไปนี้:
สายไฟเส้นใดที่ต้องเปลี่ยนหรือซ่อมแซม โดยพิจารณาจากคำอธิบายและสภาพปัจจุบัน?
ให้สร้าง CTE เพื่อค้นหาสายไฟที่เชื่อมต่อกัน แล้วกรองตามคุณลักษณะที่ต้องการ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Hierarchical and Recursive Queries in SQL Server
คำแนะนำการฝึกหัด
- กำหนด CTE ชื่อ
maintenance_List - เริ่มการประมวลผลจากสายไฟเส้นที่ 3
- JOIN
GridStructureกับmaintenance_Listบน endpoint ที่สอดคล้องกัน - ใช้
LIKEเพื่อกรองสายไฟที่มีConditionAssessmentเป็นexchangeหรือrepairและมีVoltageLevelเป็นHV
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- 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%'