この質問がすでにされている場合は申し訳ありません。私をリダイレクトしてください。
保留中だったらごめんなさい。
私の質問を明確にするために。
これが私の詳細です。
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 を使用して最大の色を取得することはできましたが、直接の親の色のみを反映し、祖父母の色は反映しません。
ご意見をお聞かせください..