Identifică liniile electrice care necesită întreținere
În tabelul GridStructure furnizat, câmpurile care descriu conexiunea dintre linii (EquipmentID, EquipmentID_To, EquipmentID_From) și caracteristicile acestora (de exemplu, Description, ConditionAssessment, VoltageLevel) sunt deja definite.
Acum, sarcina ta este să găsești liniile conectate la linia cu EquipmentID = 3 care au valoarea bad sau repair pentru ConditionAssessment și un VoltageLevel egal cu HV. Astfel, poți răspunde la următoarea întrebare:
Care linii trebuie înlocuite sau reparate, în funcție de descrierea și starea lor actuală?
Trebuie să creezi un CTE pentru a găsi liniile conectate și, în final, să filtrezi după caracteristicile dorite.
Acest exercițiu face parte din cursul
Interogări ierarhice și recursive în SQL Server
Instrucțiuni pentru exercițiu
- Definește CTE-ul
maintenance_List. - Pornește evaluarea de la linia 3.
- Realizează join-ul dintre
GridStructureșimaintenance_Listpe baza punctelor de capăt corespunzătoare. - Folosește
LIKEpentru a filtra liniile electrice cu unConditionAssessmentde tipexchangesaurepairși unVoltageLevelegal cuHV.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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%'