Obter linhas de transmissão para manutenção
Na tabela GridStructure fornecida, os campos que descrevem a conexão entre as linhas (EquipmentID,EquipmentID_To,EquipmentID_From) e as características das linhas (por exemplo, Description, ConditionAssessment, VoltageLevel) já estão definidos.
Agora, sua tarefa é encontrar as linhas conectadas à linha com EquipmentID = 3 que tenham bad ou repair em ConditionAssessment e um VoltageLevel igual a HV. Fazendo isso, você pode responder à seguinte pergunta:
Quais linhas precisam ser substituídas ou reparadas de acordo com sua descrição e sua condição atual?
Você deve criar uma CTE para encontrar as linhas conectadas e, por fim, filtrar pelas características desejadas.
Este exercício faz parte do curso
Consultas Hierárquicas e Recursivas no SQL Server
Instruções do exercício
- Defina a CTE
maintenance_List. - Inicie a avaliação pela linha 3.
- Faça um JOIN de
GridStructurecommaintenance_Listnos pontos de extremidade correspondentes. - Use
LIKEpara filtrar as linhas de transmissão comConditionAssessmentigual aexchangeourepair, eVoltageLeveligual aHV.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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%'