階層的なクエリを実行して、 "センター"とそのすべての親(最大5つの親行)を選択する必要があります。ビジネス上の理由から6行でなければならないので、私のセンターには2人しかいない場合は、実際のセンターでテーブルを完成させる必要があります。 私はこれで最初の部分達成:階層的なクエリの問題
SELECT centro as center, nodo as node , nodo_padre as father_node,
level as Lvl
FROM BUP01.NODOTREE
where rownum < 7
START WITH NODO = 35250453
CONNECT BY NODO= PRIOR NODO_PADRE
order by lvl desc
をそして、この取得:
|CENTER | NODE | FATHER_NODE | LVL|
|----------| --------------------| --------------------| ----------|
|000-101 | 1 | 0 | 3|
|000-102 | 25974018 | 1 | 2|
|000-107 | 35250453 | 25974018 | 1|
をしかし、私は次の結果スロークエリを実行する必要があります。
|CENTER |NODE |FATHER_NODE | LVL|
|---------- |-------------------- |--------------------| ----------|
|000-101 |1 |0 | 6|
|000-102 |25974018 |1 | 5|
|000-107 |35250453 |25974018 | 4|
|000-107 |35250453 |25974018 | 3|
|000-107 |35250453 |25974018 | 2|
|000-107 |35250453 |25974018 | 1|
*を*入力データの例を示してください。 – OldProgrammer
なぜあなたはその結果を望んでいる/必要としていますか? 'START WITH NODO = 35250453 'なら、あなたはその行をレベル1でしか得ることができません。あなたが**' START WITH NODO = ...'ではなく**可能な限りノードを持ち、そのノードを持つ行だけを保持します。 "望ましい結果"からは、これは実際には木ではなく、むしろ "竹の茎"(各親にはちょうど1人の子供がいる)のように見えます。あなたは解決しようとしている問題は何ですか?ソリューションの一部になると思いますか?どういうわけか、これは問題への正しいアプローチのようには感じません。 – mathguy