ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Define la CTE maintenance_List.
  • Inicia la evaluación para la línea 3.
  • Une GridStructure con maintenance_List en los extremos correspondientes.
  • Usa LIKE para filtrar las líneas eléctricas con ConditionAssessment de exchange o repair, y un VoltageLevel de HV.

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%'
Editar y ejecutar código