找出需要維護的電力線路
在提供的 GridStructure 資料表中,已經定義了描述線路彼此連接的欄位(EquipmentID、EquipmentID_To、EquipmentID_From)以及線路的特性(例如 Description、ConditionAssessment、VoltageLevel)。
現在,你的任務是找出與 EquipmentID = 3 的線路相連的那些線路,且其 ConditionAssessment 為 bad 或 repair,並且 VoltageLevel 等於 HV。完成後,你就能回答以下問題:
根據說明與目前狀況,哪些線路需要更換或維修?
你需要建立一個 CTE 來找出相連的線路,最後再根據所需特性進行篩選。
本練習屬於課程
SQL Server 的階層式與遞迴查詢
練習說明
- 定義 CTE
maintenance_List。 - 從線路 3 開始評估。
- 將
GridStructure與maintenance_List依對應端點進行連接。 - 使用
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%'