Lấy danh sách đường dây cần bảo trì
Trong bảng GridStructure đã cho, các trường mô tả kết nối giữa các tuyến (EquipmentID,EquipmentID_To,EquipmentID_From) và các đặc điểm của tuyến (ví dụ Description, ConditionAssessment, VoltageLevel) đã được định nghĩa.
Giờ, nhiệm vụ của bạn là tìm các tuyến nối với tuyến có EquipmentID = 3 mà có ConditionAssessment là bad hoặc repair và có VoltageLevel bằng HV. Bằng cách này, bạn có thể trả lời câu hỏi sau:
Những tuyến nào cần thay thế hoặc sửa chữa theo mô tả và tình trạng hiện tại của chúng?
Bạn cần tạo một CTE để tìm các tuyến được kết nối và cuối cùng lọc theo các đặc điểm mong muốn.
Bài tập này là một phần của khóa học
Truy vấn phân cấp và đệ quy trong SQL Server
Hướng dẫn bài tập
- Định nghĩa CTE
maintenance_List. - Bắt đầu đánh giá từ tuyến 3.
- JOIN
GridStructurevớimaintenance_Listtrên các đầu nối tương ứng. - Dùng
LIKEđể lọc các đường dây cóConditionAssessmentlàexchangehoặcrepair, vàVoltageLevellàHV.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- 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%'