-1

この質問がすでにされている場合は申し訳ありません。私をリダイレクトしてください。

保留中だったらごめんなさい。
私の質問を明確にするために。

これが私の詳細です。

T1 という名前のビューが 1 つあり、ID(NUM)、PARENT_ID(NUM)、COLOR(NUM) という名前の 3 つの列があります。

*ID 列は列 PARENT_ID の子です
*COLOR 列は ID 列に割り当てられた色です (最高 4000、3000、2000、最低 1000)
*ID を持つ行は 1 で、PARENT ID 0 は最上位/ルート レベルです。
* ID が 0 の行はありません。

私の問題は、次の方法がわからないことです
。1.子の最高の色値に従って親の色を変更します。
例: ID 2 の行は 4000 色でなければなりません (4000[行 ID 4]>3000[行 ID 5])。
2.次に、親の最高色に合わせて祖父母の色も変更します。グランド グランド ペアレントが存在する場合は、グランド ペアレントの最高色に従って更新する必要があります。

ID  parent ID       color
1     0                1000
2     1                1000
3     1                2000
4     2                4000
5     2                3000

出力する必要があります。

id  color
1   4000
2   4000
3   2000
4   4000
5   3000

Oracle 11g を使用しています。

私の T1 ビューも、Connect By を使用して結合された複数のテーブルの結果であることに注意してください。Connect By を使用して最大の色を取得することはできましたが、直接の親の色のみを反映し、祖父母の色は反映しません。

ご意見をお聞かせください..

4

1 に答える 1