Obtener las líneas eléctricas a mantener
En la tabla GridStructure proporcionada, ya están definidos los campos que describen la conexión entre líneas (EquipmentID, EquipmentID_To, EquipmentID_From) y las características de las líneas (por ejemplo, Description, ConditionAssessment, VoltageLevel).
Ahora, tu tarea es encontrar las líneas conectadas a la línea con EquipmentID = 3 que tengan bad o repair como ConditionAssessment y que tengan un VoltageLevel igual a HV. Con esto, podrás responder a la siguiente pregunta:
¿Qué líneas deben sustituirse o repararse según su descripción y su estado actual?
Tienes que crear una CTE para encontrar las líneas conectadas y, por último, filtrar por las características deseadas.
Este ejercicio forma parte del curso
Consultas jerárquicas y recursivas en SQL Server
Instrucciones del ejercicio
- Define la CTE
maintenance_List. - Inicia la evaluación para la línea 3.
- Une
GridStructureconmaintenance_Listen los extremos correspondientes. - Usa
LIKEpara filtrar las líneas eléctricas conConditionAssessmentdeexchangeorepair, y unVoltageLeveldeHV.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- 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%'