1

WITHSQLServer2000に問題があります。CTEがSQLServer2005で導入されたため、再帰クエリを送信できません。

私の質問は次のとおりです。

プロシージャを使用したくないが、2つのクエリを送信できる場合、階層の回答を取得するにはどうすればよいですか。その場合、最初のクエリの回答を2番目のクエリに含めることができます。

これはSQLServer2005のクエリです。

WITH recursive_back (SOACTION,SOACTIONS) AS
(SELECT child.SOACTION,child.SOACTIONS
   FROM  soaction child
  WHERE child.soaction ={id to search}
  UNION ALL
 SELECT parent.SOACTION,parent.SOACTIONS
   FROM recursive_back child,soaction parent
  WHERE child.soactions = parent.soaction ),
recursive_ahead (SOACTION,SOACTIONS) AS
(SELECT parent.SOACTION, parent.SOACTIONS
   FROM soaction parent,recursive_back
  WHERE parent.soaction=recursive_back.soaction
  UNION ALL
 SELECT child.SOACTION, child.SOACTIONS
   FROM recursive_ahead parent, soaction child
  WHERE child.soactions = parent.soaction)

SELECT R.SOACTION,R.SOACTIONS
  FROM recursive_back R, SOACTION A
 WHERE R.SOACTION=A.SOACTION
 UNION
SELECT R.SOACTION,R.SOACTIONS
  FROM recursive_ahead R, SOACTION A
 WHERE R.SOACTION=A.SOACTION;

GO
4

0 に答える 0