Визначення ліній, що потребують обслуговування
У наданій таблиці GridStructure уже визначено поля, що описують звʼязок між лініями (EquipmentID,EquipmentID_To,EquipmentID_From), а також характеристики ліній (напр., Description, ConditionAssessment, VoltageLevel).
Тепер ваше завдання — знайти повʼязані лінії для лінії з EquipmentID = 3, у яких значення ConditionAssessment дорівнює bad або repair, а VoltageLevel — HV. Так ви зможете відповісти на запитання:
Які лінії потрібно замінити або відремонтувати відповідно до їхнього опису та поточного стану?
Вам потрібно створити CTE, щоб знайти повʼязані лінії, а потім відфільтрувати їх за потрібними характеристиками.
Ця вправа є частиною курсу
Ієрархічні та рекурсивні запити в SQL Server
Інструкції до вправи
- Визначте CTE
maintenance_List. - Почніть оцінювання для лінії 3.
- Зʼєднайте
GridStructureзmaintenance_Listза відповідними кінцевими точками. - Використайте
LIKE, щоб відфільтрувати повітряні лінії зConditionAssessmentexchangeабоrepairта зVoltageLevelHV.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- 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%'