みなさん、良い一日を!まず、下手な英語で申し訳ありません。さて、このメッセージのタイトルにある質問があります。
必要なデータを選択しようとすると、SQL Server がこのメッセージ (エラー 253) を返します。
「CTEの再帰要素(名前は「再帰」です-私のメモ)には、CTEで複数の参照があります。
どうすればこの問題を解決できますか?
以前の再帰選択の結果である 2 つのテーブル (2 つの列 (例: a と b)) を結合する方法を教えてください (同じ選択について書いていますが、if の別の反復について書いています)。
with recurse (who_acts,on_whom_influence)
as
(
-------------------------------------------FIRST SELECT
select distinct interface_1.robot_name as who_acts,interface_2.robot_name as on_whom_influence
from INTERFACE as interface_1,INTERFACE as interface_2
where (interface_1.number in ( select INPUT_INTERFACE.source
from INPUT_INTERFACE
)
and interface_2.number in (
select INPUT_INTERFACE.number
from INPUT_INTERFACE
where (INPUT_INTERFACE.source=interface_1.number )
)
)
-------------------------------------------RECURSIVE PART
union all
select rec1.who_acts,rec1.on_whom_influence
from recurse as rec1
inner join
(select rec2.who_acts,rec2.on_whom_influence
from recurse as rec2) as P on (1=1)
)
select * from recurse
問題は再帰CTE にあります。接続条件は単純ではありませんが、この問題には影響しません。コメントに実用的なコードを入力できますか