对不起,如果这个问题已经被问到了。请重定向我。
对不起,如果它被搁置。
只是为了澄清我的问题。
这是我的详细信息。
我有 1 个名为 T1 的视图,它有 3 个名为 ID(NUM)、PARENT_ID(NUM) 和 COLOR(NUM) 的列。
*ID 列是 PARENT_ID 列的子代
*COLOR 列是 ID 列的指定颜色(最高 4000、最低 3000、2000、最低 1000)
*ID 为 1 的行,父 ID 0 是最高/根级别。
*我没有ID为0的行;
我的问题是,我不知道如何:
1.根据其孩子的最高颜色值更改父颜色。
例如:id 为 2 的行必须是 4000 颜色(4000[row id 4]>3000[row 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 获得了最大颜色,但它只反映了它的直接父颜色,而不是它的祖父颜色。
请指教..