ПочатиПочніть безкоштовно

Визначення ліній, що потребують обслуговування

У наданій таблиці GridStructure уже визначено поля, що описують звʼязок між лініями (EquipmentID,EquipmentID_To,EquipmentID_From), а також характеристики ліній (напр., Description, ConditionAssessment, VoltageLevel).

Тепер ваше завдання — знайти повʼязані лінії для лінії з EquipmentID = 3, у яких значення ConditionAssessment дорівнює bad або repair, а VoltageLevelHV. Так ви зможете відповісти на запитання:

Які лінії потрібно замінити або відремонтувати відповідно до їхнього опису та поточного стану?

Вам потрібно створити CTE, щоб знайти повʼязані лінії, а потім відфільтрувати їх за потрібними характеристиками.

Ця вправа є частиною курсу

Ієрархічні та рекурсивні запити в SQL Server

Переглянути курс

Інструкції до вправи

  • Визначте CTE maintenance_List.
  • Почніть оцінювання для лінії 3.
  • Зʼєднайте GridStructure з maintenance_List за відповідними кінцевими точками.
  • Використайте LIKE, щоб відфільтрувати повітряні лінії з ConditionAssessment exchange або repair та з VoltageLevel HV.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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%'
Редагувати та запускати код