最速怪談選手権

階層構造に対するSQLに関して教えて下さい。

以下のような階層構造になっているデータが存在していますが、単純にトップを指定し、それ以下の
組織を表示させる事は簡単かと思われますが、下位層の品番を指定、その人が所属している部署のトップだけを
抽出するようなSQLはどのように記述すれば良いでしょうか、、、

恐らくCONNECT BY を使うかと思われますが、記述の仕方がわかりません。

以下のケースでは、TANAKAさんを指定した場合、TANAKAさんは兼務している為、トップとしては、
SUZUKIさんとSASAKIさんが抽出されるSQLとしたいです。


【テーブル内容】


EMPNOENAMEMGR(上司)
1SUZUKI
2SATO1
3YAMADA1
4TANAKA3
5FUKUDA1
6ENDO5
7KOIKE6
8SASAKI
4TANAKA8

よろしくお願いします。

A 回答 (2件)

connect_by_root演算子が使えるのでは?



(例)
select connect_by_root ename as rootname
from emp
where ename = 'SCOTT'
start with mgr is null
connect by prior empno = mgr
;

詳しくはgoogle先生に聞いてください。
    • good
    • 0

connect_by_root演算子が使えるのでは?



(例)
select connect_by_root ename as rootname
from emp
where ename = 'SCOTT'
start with mgr is null
connect by prior empno = mgr
;

詳しくはgoogle先生に聞いてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!