0

レポートする2つのリンクされたテーブルがあります。-1つ目はソリューションと2つ目へのリンクを保持します。重要なフィールドは、ソリューション、タイプ、typeIDです。2番目はカテゴリに関する情報を保持します。使用するフィールドは、typeID、type、parentTypeID、treeLvlです。parentTypeIDは、構造の上位レベルのtypeIDを参照します。

ツリー構造全体を再作成するためのソリューションとタイプを取得する必要があります。現在、Left Outer Joinを使用して2番目のテーブルをそれ自体に5回リンクしていますが、ループ内で実行したいと考えています。

私はこれらの線に沿って何かを考えていますが、それが機能する必要があります:

numberVar level := {KBTYPES.TREELVL};
stringVar currentType;
numberVar type;
while level >= 1 do 
(
currentType := {KBTYPES.TYPE} & currentType;
type := {KBTYPES.ParentKBTypeId};
{KBTYPES.KB_TYPEID} := type;
level -1;
);
currentType
4

1 に答える 1

0

あなたがやりたいことは不可能だと私は確信しています。タイプは変更されますか、それともそのテーブルはかなり静的ですか? 値はたくさんありますか?実際にキーと値のペアをループ関数に持ち込むことを検討できます。

あなたのデータソースは何ですか? おそらく、ソースでこれを達成する可能性がはるかに高くなります (sproc/function/view を使用)。

私はそれをテストしていませんが、これは共通テーブル式を使用した Google からの最初の結果です: http://mycodingexperience.blogspot.co.uk/2011/04/common-table-expression-cte-and-tree.html

于 2012-05-28T10:13:22.387 に答える