1
我正在嘗試編寫一個分層代碼,除了所有子/父帳戶還會顯示一個列,其中包含表TO_DELETE此帳戶(子/父母)根據。 換句話說:根據表TO_DELETE中的哪個帳戶顯示父/子帳戶?有關基於哪個值的信息的分層查詢
我的代碼如下:
WITH acc_to_delete(ID) AS (
select parentaccount from account where accountid in
(select accountid from to_delete)
)
SELECT accountid id_acc
FROM account p
START WITH
EXISTS(SELECT 'X'
FROM to_delete w
WHERE p.accountid = w.accountid
)
CONNECT BY accountid = PRIOR parentaccount
union
SELECT accountid id_acc
FROM account p
START WITH
EXISTS(SELECT 'X'
FROM to_delete w
WHERE p.accountid = w.accountid
)
CONNECT BY prior accountid = parentaccount
它似乎正常工作。結果我得到了一個樹帳戶。至少我認爲:)
CREATE TABLE to_delete
(accountid number);
CREATE TABLE account
(accountid number,
parentaccount number)
所以現在當to_delete表包含數據:
3123,
3443,
5646,
7563,
3452,
2346
和帳戶包含:
Accountid parentaccount
3123 5533
3443 3452
5646 4342
7563 1239
3452 5533
2346 1230
5533 6474
6474 1231
1231 1293
1293 null
然後輸出應外觀:
accountid based on
3123 3123
5533 3123
6474 3123
1231 3123
1293 3123
3443 3443
3452 3443
6474 3443
1231 3443
1293 3443
5646 5646
4342 5646
7563 7563
等。 是否可以在SQL中執行?或者我需要使用pl sql?
謝謝kordirko! :)我還有一個問題,你可以看看我的代碼進行分層查詢嗎?我認爲這是好的,但有一些重複的問題,我不知道如果我做得那麼正確... – bazyl