Aan de slagGa gratis aan de slag

Bepaal welke hoogspanningslijnen onderhoud nodig hebben

In de tabel GridStructure zijn de velden die de verbinding tussen lijnen beschrijven (EquipmentID,EquipmentID_To,EquipmentID_From) en de kenmerken van de lijnen (bijv. Description, ConditionAssessment, VoltageLevel) al gedefinieerd.

Jouw taak is nu om de verbonden lijnen te vinden van de lijn met EquipmentID = 3 die als ConditionAssessment bad of repair hebben en waarvan de VoltageLevel gelijk is aan HV. Zo kun je de volgende vraag beantwoorden:

Welke lijnen moeten worden vervangen of gerepareerd op basis van hun omschrijving en huidige staat?

Je moet een CTE maken om de verbonden lijnen te vinden en vervolgens te filteren op de gewenste kenmerken.

Deze oefening maakt deel uit van de cursus

Hiërarchische en recursieve queries in SQL Server

Cursus bekijken

Oefeninstructies

  • Definieer de CTE maintenance_List.
  • Start de beoordeling voor lijn 3.
  • Join GridStructure met maintenance_List op de overeenkomstige eindpunten.
  • Gebruik LIKE om de hoogspanningslijnen te filteren met een ConditionAssessment van exchange of repair, en een VoltageLevel van HV.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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%'
Code bewerken en uitvoeren