對不起,如果這個問題已經被問到。請重定向我。PL-SQL TREE MAX VALUE ROLLUP
對不起,如果它被擱置。
只是爲了澄清我的問題。
這是我的細節。
我有1個名爲T1的視圖,它有3列名爲ID(NUM),PARENT_ID(NUM)和COLOR(NUM)的列。
* ID列是列PARENT_ID的子
*顏色列ID列的分配的顏色(4000最高,3000,2000,1000最低)
*與ID行1和父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加入的多個表的結果。我已經設法使用「連接方式」獲得最大顏色,但它僅反映其直接父級顏色,而不反映其父級顏色。
請諮詢..
你能澄清什麼是你想要的,你是如何在你需要的輸出獲得的「顏色」的價值觀?從提供的樣本輸出中我不清楚。什麼是「終極父母」?那個ID是0嗎?如果是這樣,爲什麼它沒有列在你的表中?如果不是,它是什麼? –
我已經設法得到兒童的最大顏色,但它只反映了它的直接父母,而不是它的盛大父母的顏色。我試圖使用遞歸只是爲了更新盛大的父母顏色,但它太慢 –
我已經使用Gaurav Soni的建議,它的工作原理。 –