LoslegenKostenlos loslegen

Zu wartende Stromleitungen ermitteln

In der bereitgestellten Tabelle GridStructure sind die Felder, die die Verbindung zwischen Leitungen beschreiben (EquipmentID,EquipmentID_To,EquipmentID_From), sowie die Eigenschaften der Leitungen (z. B. Description, ConditionAssessment, VoltageLevel) bereits definiert.

Deine Aufgabe ist es nun, die verbundenen Leitungen der Leitung mit EquipmentID = 3 zu finden, die als ConditionAssessment bad oder repair haben und deren VoltageLevel gleich HV ist. So kannst du folgende Frage beantworten:

Welche Leitungen müssen laut Beschreibung und aktuellem Zustand ausgetauscht oder repariert werden?

Du musst eine CTE erstellen, um die verbundenen Leitungen zu finden, und anschließend nach den gewünschten Eigenschaften filtern.

Diese Übung ist Teil des Kurses

Hierarchische und rekursive Abfragen in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Definiere die CTE maintenance_List.
  • Starte die Auswertung für Leitung 3.
  • Verknüpfe GridStructure mit maintenance_List über die entsprechenden Endpunkte.
  • Verwende LIKE, um die Stromleitungen mit ConditionAssessment entweder exchange oder repair und einem VoltageLevel von HV zu filtern.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

-- 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 bearbeiten und ausführen