ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Defina a CTE maintenance_List.
  • Inicie a avaliação pela linha 3.
  • Faça um JOIN de GridStructure com maintenance_List nos pontos de extremidade correspondentes.
  • Use LIKE para filtrar as linhas de transmissão com ConditionAssessment igual a exchange ou repair, e VoltageLevel igual a HV.

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%'
Editar e executar o código