Zacznij terazZacznij za darmo

Znajdowanie linii energetycznych do konserwacji

W tabeli GridStructure zdefiniowane są już pola opisujące połączenia między liniami (EquipmentID, EquipmentID_To, EquipmentID_From) oraz charakterystyki tych linii (np. Description, ConditionAssessment, VoltageLevel).

Twoim zadaniem jest teraz znalezienie linii powiązanych z linią o EquipmentID = 3, które mają wartość bad lub repair w polu ConditionAssessment oraz wartość HV w polu VoltageLevel. Dzięki temu możesz odpowiedzieć na następujące pytanie:

Które linie wymagają wymiany lub naprawy na podstawie ich opisu i aktualnego stanu technicznego?

Utwórz CTE, aby znaleźć powiązane linie, a następnie odfiltruj te o pożądanych właściwościach.

To ćwiczenie jest częścią kursu

Hierarchiczne i rekurencyjne zapytania w SQL Server

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj CTE o nazwie maintenance_List.
  • Rozpocznij analizę od linii numer 3.
  • Połącz tabelę GridStructure z maintenance_List po odpowiadających sobie punktach końcowych.
  • Użyj LIKE, aby odfiltrować linie energetyczne z wartością exchange lub repair w polu ConditionAssessment oraz wartością HV w polu VoltageLevel.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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%'
Edytuj i uruchom kod