1

依存関係をリストした単一のテーブルがあり、ダイアグラムが表示される実際の順序でこれをソートする方法がわかりません (DB2 SQL を使用)

ダイアグラム (グループを一覧表示) 34 -> 23 -> 65 ->....

目標は、図の順序でソートすることです

テーブルには GROUP と DEPEND の 2 つのフィールドがあります。理想的な最初の列は、34,0 (何も依存していないため 0)、23,34 (GROUP 34 に依存)、65,23 (GROUP 23 に依存) の順です。GROUP、DEPENDのパターンに従います。

したがって、結果は次のようになります。

1.グループ依存
 2. 34 0
 3. 23 34
 4. 65 23

変数などを使用して前のレコードの GROUP を表示し、次の行を決定することはできますか?

助けやアイデアをどうもありがとう

4

1 に答える 1

2

現在のバージョンの DB2 は再帰クエリをサポートしているため、次のように動作するはずです (少なくとも、Windows 上の DB2 9.7 Express-C では動作します)。

with dep_tree  (groupno, depend, group_order) as (
   select groupno, depend, 1 as group_order
   from group_list
   where depend = 0

   union all 

   select c.groupno, c.depend, p.group_order + 1
   from group_list c, 
        dep_tree p 
   where p.groupno = c.depend
)
select group_order, groupno, depend
from dep_tree
order by group_order;

は予約語であり、列名として使用すべきではないため、groupno代わりにGROUP列名として使用したことに注意してください。GROUP

于 2012-12-08T07:00:17.017 に答える