Kom igångKom igång gratis

Hitta kraftledningar som behöver underhåll

I tabellen GridStructure finns redan fält som beskriver kopplingen mellan ledningar (EquipmentID, EquipmentID_To, EquipmentID_From) samt ledningarnas egenskaper (t.ex. Description, ConditionAssessment, VoltageLevel).

Din uppgift är nu att hitta de ledningar som är anslutna till ledningen med EquipmentID = 3 och som har bad eller repair som ConditionAssessment samt ett VoltageLevel som är lika med HV. På så sätt kan du besvara följande fråga:

Vilka ledningar behöver bytas ut eller repareras utifrån deras beskrivning och aktuella skick?

Du ska skapa en CTE för att hitta de anslutna ledningarna och sedan filtrera på önskade egenskaper.

Den här övningen är en del av kursen

Hierarkiska och rekursiva frågor i SQL Server

Visa kurs

Övningsinstruktioner

  • Definiera CTE:n maintenance_List.
  • Börja utvärderingen från ledning 3.
  • Koppla ihop GridStructure med maintenance_List på motsvarande ändpunkter.
  • Använd LIKE för att filtrera kraftledningar med ConditionAssessment av antingen exchange eller repair, samt ett VoltageLevel av HV.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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%'
Redigera och kör kod