У меня есть таблица, но я не могу написать отношение для извлечения дерева.Как создать иерархический запрос в Oracle?
Вот пример данных:
LOT_ID | LOT_PRODUCED | ITEM_PRODUCED | ITEM_USED | LOT_USED | OPERATION | STEP
------ | ------------ | ------------- | --------- | -------- | --------- | ----
1 | LOT_1 | ITEM_1 | null | null | P | STEP_1
1 | null | null | ITEM_1 | LOT_1 | C | STEP_2
5 | null | null | ITEM_2 | LOT_2 | C | STEP_2
5 | LOT_2 | ITEM_2 | null | null | P | STEP_8
5 | null | null | ITEM_2 | LOT_2 | C | STEP_1
6 | null | null | ITEM_2 | LOT_7 | C | STEP_8
Начиная с LOT_PRODUCED = LOT_1, я хотел бы иметь дерево с каждым шагом, связанным с этапом начальной партии.
Итак, в этом примере мы видим, что STEP_1 (шаг, который произвел LOT_1) потребляет LOT_2. Эта партия была произведена STEP_8. Этот шаг, в свою очередь, потребляет LOT_7. И так далее.
Я думаю, что понимаю концепцию START WITH и CONNECT BY, но я не могу решить этот случай, поскольку ссылка «прыгает» между столбцами. Определенных родительских и дочерних элементов нет.
Если это не разрешено простым запросом, я открыт для хранимой процедуры.
Edit:
Here is a drawing of the data shown above
Итак, на левом есть объяснения ссылок:
- много потребляемых шагом
- шаг производит много
И справа есть ссылки: номер на линии связи ectors - номер строки данных, показанных выше.
Очистить как грязь.Какая строка показывает, что LOT_1 потребляет LOT_2? В вашей таблице нет строки, чтобы показать какую-либо связь между ними, либо напрямую, либо цепочкой других строк. (Если есть, объясните.) – mathguy
Похоже, у вас есть три перечислимых объекта: партии, предметы и шаги. Однако я не думаю, что ясно, какова взаимосвязь между этими вещами - отредактируйте свой вопрос, чтобы указать (примерно), что это за вещи. Он выглядит как шаг _produces_ item, шаг _uses_ item и шаг _uses_ много. Вы уточните? – halfer
Вы можете обнаружить, что графическое представление, встроенное в ваш вопрос, помогает проиллюстрировать проблему. – halfer