Я должен получить список ограничений для подразделов уровня 1part. Пределы для некоторых частей равны нулю, а для этих пустых частей я должен запросить части уровня 2, которые находятся в этой части, и дать МИНУЗУ пределов этих частей уровня 2. Для некоторых частей 2-го уровня я должен получить МИНУТУ их подчастей (части 3-го уровня в этой части 2-го уровня) и свернуть их до совокупности 2-го уровня.
Каков будет ваш подход?
При написании этого я понял, что могу отфильтровать обнуленные части уровня 1 и объединить его с запросом, который выполняет агрегацию для обнуленных частей уровня 1, но я хочу убедиться, что лучшего решения нет. Я думаю, что я чувствовал себя маленьким голубем, скрытым запросом, который мне дали изначально, который дал все дерево (части деталей более низкого уровня были соединены с деталями более высокого уровня, используя START WITH и CONNECT BY), и я пытался сжать его с помощью умного SQL, но я не мог. Кроме того, я бы хотел, чтобы запрос работал с n уровнями агрегирования, а не с конечным числом, исходя из того, сколько раз я хочу скопировать и вставить свои UNION и подзапросы.
Это должно быть сделано в SQL. Я не могу использовать PL / SQL.
Для простоты, представьте схему следующим образом:
Assembly table
level1_serial | level2_serial
-----------------------------
1234 | null
123 | 1
123 | 2
123 | 3
Limit table
part_serial | limit
-------------------
1234 | 1000
123 | null
1 | 500
2 | 400
3 | 600
В этом случае мне нужно будет вернуть две записи следующим образом
part_serial | limit
-------------------
1234 | 1000
123 | 400