我有一張桌子,但我無法寫出提取樹的關係。如何在Oracle中生成分層查詢?
下面是數據的一個例子:從LOT_PRODUCED = LOT_1開始
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
,我想有鏈接到起始很多步驟每一步一棵樹。
因此在本例中,我們看到STEP_1(生成LOT_1的步驟)消耗LOT_2。那一批是由STEP_8製作的。這一步反過來消耗LOT_7。等等。
我想我明白了START WITH和CONNECT BY的概念,但我無法解決這種情況,因爲鏈接在列之間「跳躍」。沒有明確的父母和孩子。
如果這不能用一個簡單的查詢解決,我打開存儲過程。
編輯:
Here is a drawing of the data shown above
所以左邊有鏈接的解釋:
- 很多由
- 步驟產生了很多步驟中消耗
右邊有鏈接:conn上的數字ectors是上面顯示的數據的行號。
清澈如泥。哪一行顯示LOT_1消耗LOT_2?表中沒有任何行可以顯示它們之間的任何連接,可以直接或通過其他行的鏈。 (如果有的話,請解釋。) – mathguy
看起來你有三個枚舉實體:批次,項目和步驟。然而,我不認爲這些事情之間的關係是清楚的 - 你會編輯你的問題來表明(粗略)這些事情是什麼。它看起來像一個步驟_produces_一個項目,一個步驟_uses_一個項目,以及一個步驟_uses_很多。你能澄清嗎? – halfer
您可能會發現嵌入在您的問題中的圖形表示有助於說明問題。 – halfer