ÎncepețiÎncepe gratuit

Identifică liniile electrice care necesită întreținere

În tabelul GridStructure furnizat, câmpurile care descriu conexiunea dintre linii (EquipmentID, EquipmentID_To, EquipmentID_From) și caracteristicile acestora (de exemplu, Description, ConditionAssessment, VoltageLevel) sunt deja definite.

Acum, sarcina ta este să găsești liniile conectate la linia cu EquipmentID = 3 care au valoarea bad sau repair pentru ConditionAssessment și un VoltageLevel egal cu HV. Astfel, poți răspunde la următoarea întrebare:

Care linii trebuie înlocuite sau reparate, în funcție de descrierea și starea lor actuală?

Trebuie să creezi un CTE pentru a găsi liniile conectate și, în final, să filtrezi după caracteristicile dorite.

Acest exercițiu face parte din cursul

Interogări ierarhice și recursive în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește CTE-ul maintenance_List.
  • Pornește evaluarea de la linia 3.
  • Realizează join-ul dintre GridStructure și maintenance_List pe baza punctelor de capăt corespunzătoare.
  • Folosește LIKE pentru a filtra liniile electrice cu un ConditionAssessment de tip exchange sau repair și un VoltageLevel egal cu HV.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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%'
Editează și rulează codul