始める無料で始める

保守対象の送電線を取得する

提供された GridStructure テーブルには、線路同士の接続を表すフィールド(EquipmentIDEquipmentID_ToEquipmentID_From)と、線路の特性(例:DescriptionConditionAssessmentVoltageLevel)がすでに定義されています。

ここでは、EquipmentID = 3 の線路に接続していて、ConditionAssessmentbad または repair、かつ VoltageLevelHV の線路を探します。これにより、次の問いに答えられます。

記述と現在の状態に基づいて、どの線路を交換または修理すべきでしょうか?

接続している線路を見つけるために CTE を作成し、最後に目的の特性でフィルタリングしてください。

この演習はコースの一部です

SQL Server における階層型クエリと再帰クエリ

コースを見る

演習の手順

  • CTE maintenance_List を定義します。
  • 線路 3 から評価を開始します。
  • 対応する端点で GridStructuremaintenance_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%'
コードを編集して実行