階層問い合わせに関して
930339Jul 26 2012 — edited Jul 31 2012環境:Oracle 11g
SQLで階層問い合わせに関して教えて下さい。
また、他のHPと重複して投稿している事をお許し下さい。
今、ある部品テーブルに対し、直下のレコードのみを抽出しようとしていますが、ある共通の
構成をA部品群、B部品群の中に入れた場合、なぜか同じ結果が2回表示されてしまいます。
以下にサンプルのデータとSQLを作成しましたので、何がおかしいか教えて頂きたいと思います。
【Aテーブル】
品目番号,親品目番号
A
A1,A
B,A
B1,B
↑ A部品群
C
D,C
B,C
B1,B
↑ B部品群
※ Bが共通の構成です。
【SQL】
select 品目番号 as 下位品目番号,親品目番号 from A_TABLE where 品目番号 != 'B' AND 親品目番号 = 'B' start with 品目番号 = 'B' connect by prior 品目番号 = 親品目番号
【結果】
下位品目番号,親品目番号
B1,B
B1,B
2回表示されてしまいます。
単純に親品目番号=’B’としてしまえば正しく拾えますが、上記のSQLを多様している為、
何が間違っているか教えて頂ければと思います。
初歩的な質問で申し訳ありませんが、教えて下さい。