- - PR -
階層問い合わせで、検索元を表示させたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-01-16 16:02
Oracle9iを使用していますが、
下記のSQL文で、「#####」の部分に、検索元(「AAA」もしくは「BBB」)を取り出す式を入れたいと思っています。 お分かりになるかた、いらっしゃいませんか? select K1.K親図番 as 親図番, K1.K子図番 as 子図番, nvl(prior K1.K構成数量,1) * (K1.K構成数量) as 構成数量, ############ as 検索元, level as LV FROM KOUSEI K1 START WITH (K1.K親図番 = 'AAA' or K1.K親図番 = 'BBB') CONNECT BY PRIOR K1.K子図番 = K1.K親図番 ORDER SIBLINGS BY K1.K子図番 |
|
投稿日時: 2006-01-16 16:51
10gならConnect_by_Rootを使うんですが、
9iならsys_connect_by_pathの最初を使うか、 スカラー問い合わせで階層を逆にたどって、 Last_ValueでLevelが最大の行の値を取得ですかね |
|
投稿日時: 2006-01-17 09:01
明智さん、
ありがとうございます! sys_connect_by_path をつかって、うまくできました。 |
|
投稿日時: 2006-01-18 12:09
せっかくなので、合わせておしえてください。
上記の目的をOracle8 で実現する方法は、あるでしょうか? (上記 ORDER SIBLINGS BY は、Oracle8では使用できないようですので、 そういう部分は無視してください) |
|
投稿日時: 2006-01-18 14:36
4-9 階層問い合わせの根を取得
http://oraclesqlpuzzle.hp.infoseek.co.jp/4-9.html oracle8だと select句での相関サブクエリが使えないので、 結合を使うことになるようです。 [ メッセージ編集済み 編集者: 明智重蔵 編集日時 2008-02-28 19:42 ] |
|
投稿日時: 2006-01-18 15:58
明智さん
ありがとうございます! なんか、すごい方法を使うことになるんですね。 実際に使うには、少し大変そうです。 がんばって使ってみます。 |
1