2015-12-18 64 views
0

在我的oracle 11g數據庫中,我有兩個表。第一個,accitem,保存項目信息,第二個,acchart保存圖表信息。表accitem中的每一行都是唯一的。沒有重複。在另一個表中,acchart item_type引用acchart表中的外鍵。它看起來像這樣:基於兩個表的層次結構查詢,

Accitem 
ID   Details 
BS   Balance sheet 
PL   Profit & loss 

acchart 

item_code item_description  item_type 
INC   Income     PL 
EXP   Expenses    PL 
Ass   Assets     BS 
Eqt   Equity     BS 

我想實現如下:

Balance Sheet 
    + Assets 
    + Equity 

Profit & Loss 
    + Income 
    + Expenses 

你將如何做到這一點?

+0

我不明白你想做什麼exacly。你是否試圖將兩個表合併爲一個,其中項目類型是相互放置的? –

+0

您可以爲表格提供DDL語句,一些示例數據**和**您對該數據的預期輸出? – MT0

+1

這是一個簡單的連接..但是然後你顯示爲縮進..所以也許連接? – Randy

回答

0

你的確可以使用connect by

select decode(level, 2, ' + ', '')||q.name from 
(
select ID, Details name, null parent_id 
from accitem 
UNION ALL 
select null ID, item_description name, item_type parent_id 
from acchart 
) q 
start with parent_id is null 
connect by prior id = parent_id 

其性能上更大的數據集,雖然值得商榷。

+0

現貨,這是我想要的。非常感謝genious –