CommencezCommencez gratuitement

Repérer les lignes électriques à entretenir

Dans la table GridStructure fournie, les champs qui décrivent la connexion entre les lignes (EquipmentID,EquipmentID_To,EquipmentID_From) et les caractéristiques des lignes (p. ex. Description, ConditionAssessment, VoltageLevel) sont déjà définis.

Votre tâche consiste maintenant à trouver les lignes connectées à la ligne dont EquipmentID = 3 qui ont bad ou repair comme ConditionAssessment et un VoltageLevel égal à HV. Cela vous permettra de répondre à la question suivante :

Quelles lignes doivent être remplacées ou réparées selon leur description et leur état actuel?

Vous devez créer une CTE pour trouver les lignes connectées, puis filtrer selon les caractéristiques souhaitées.

Cette activité fait partie du cours

Requêtes hiérarchiques et récursives dans SQL Server

Voir le cours

Instructions de l’exercice

  • Définissez la CTE maintenance_List.
  • Commencez l'évaluation pour la ligne 3.
  • Joignez GridStructure avec maintenance_List sur les points d'extrémité correspondants.
  • Utilisez LIKE pour filtrer les lignes électriques dont le ConditionAssessment est soit exchange soit repair, et dont le VoltageLevel est HV.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- 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%'
Modifier et exécuter le code