유지 보수가 필요한 송전선 찾기
제공된 GridStructure 테이블에는 선로 간 연결을 설명하는 필드(EquipmentID, EquipmentID_To, EquipmentID_From)와 선로의 특성(예: Description, ConditionAssessment, VoltageLevel)이 이미 정의되어 있어요.
이제 여러분의 과제는 EquipmentID = 3인 선로와 연결된 선로들 중 ConditionAssessment가 bad 또는 repair이고, VoltageLevel이 HV인 선로를 찾는 것입니다. 이렇게 하면 다음 질문에 답할 수 있어요:
설명과 현재 상태에 따르면 어떤 선로를 교체하거나 수리해야 하나요?
연결된 선로를 찾기 위해 CTE를 만들고, 마지막에는 원하는 특성으로 필터링하세요.
이 연습은 강의의 일부입니다
SQL Server에서의 계층형 및 재귀 쿼리
연습 안내
- CTE
maintenance_List를 정의하세요. - 3번 선로에 대한 평가를 시작하세요.
- 해당 단말(endpoint)에 맞춰
GridStructure를maintenance_List와 조인하세요. ConditionAssessment가exchange또는repair이고VoltageLevel이HV인 송전선을LIKE로 필터링하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- 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%'