Извините, если этот вопрос уже задан. пожалуйста, перенаправите меня.PL-SQL TREE MAX VALUE ROLLUP
Извините, если он находится на удержании.
Просто, чтобы уточнить мой вопрос.
Вот мои подробности.
У меня есть 1 вид с именем T1, и он имеет 3 столбца с именем ID (NUM), PARENT_ID (NUM) и COLOR (NUM).
* ID столбец ребенок столбца PARENT_ID
* столбец ЦВЕТ назначенный цвет ID колонке (4000 высокая, 3000, 2000, 1000 низшему)
* Строка с идентификатором 1 и РОДИТЕЛЕЙ ID 0 является верхний/корневой уровень.
* У меня нет строки с идентификатором 0;
Моя проблема заключается в том, что я не знаю, как:
1. измените цвет родителя в соответствии с его самым высоким значением цвета.
например: строка с идентификатором 2 должна быть 4000 цветов (4000 [номер строки 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, но он отражает только его непосредственный родительский цвет, а не цвет его родителей.
Пожалуйста совет ..
Можете ли вы уточнить, что именно вы хотите, и как вы получаете значения для «цвет» в желаемом выходе? Мне это не ясно из предоставленного образца. Что такое «конечный родитель»? Это id 0? Если да, то почему он не указан в вашей таблице? Если это не так, что это? –
Мне уже удалось получить максимальный цвет детей, но он отражает только его непосредственного родителя, а не его большой родительский цвет. Я попытался использовать рекурсию, чтобы обновить большой родительский цвет, но слишком медленно –
Я уже использовал совет Gaurav Soni, и он работает. –