Znajdowanie linii energetycznych do konserwacji
W tabeli GridStructure zdefiniowane są już pola opisujące połączenia między liniami (EquipmentID, EquipmentID_To, EquipmentID_From) oraz charakterystyki tych linii (np. Description, ConditionAssessment, VoltageLevel).
Twoim zadaniem jest teraz znalezienie linii powiązanych z linią o EquipmentID = 3, które mają wartość bad lub repair w polu ConditionAssessment oraz wartość HV w polu VoltageLevel. Dzięki temu możesz odpowiedzieć na następujące pytanie:
Które linie wymagają wymiany lub naprawy na podstawie ich opisu i aktualnego stanu technicznego?
Utwórz CTE, aby znaleźć powiązane linie, a następnie odfiltruj te o pożądanych właściwościach.
To ćwiczenie jest częścią kursu
Hierarchiczne i rekurencyjne zapytania w SQL Server
Instrukcje do ćwiczenia
- Zdefiniuj CTE o nazwie
maintenance_List. - Rozpocznij analizę od linii numer 3.
- Połącz tabelę
GridStructurezmaintenance_Listpo odpowiadających sobie punktach końcowych. - Użyj
LIKE, aby odfiltrować linie energetyczne z wartościąexchangelubrepairw poluConditionAssessmentoraz wartościąHVw poluVoltageLevel.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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%'