[pgsql-jp: 34486] 再帰構造からPATHの生成について

Tsugawa tsugawa @ just-web.co.jp
2004年 12月 15日 (水) 11:39:08 JST


こんにちは、津川と申します。
本MLでは大変勉強させて頂いており、有難う御座います。

過去ログなども参照させて戴きましたが、苦戦しており
投稿させていただくしだいで御座います。
何か、ヒントでも結構ですのでご教授いただければ幸いです。

******内容
PostgreSQL 7.3.4
Red Hat 9

m_bom という部品表テーブルがあります。
prod_code は部品マスタテーブル内で一意な物になっておりますが
部品表テーブル(m_bom)では親(bom_code)が違えば、何回でも登録できます。

これらを再帰的に結合する関数は、「シーラカンス第4 版」のサンプルにて作成で
き、
子部品や子製品を結合した問い合わせができるようになりました。
*******コードを勝手に書くと申し訳ないので省略します。 P225 参照下さい。
仮に
    prod_code = 10076

 で参照した結果の例です。

prod_code | bom_code
-----------+----------
 146       | 10076    |
  10065     | 10076    |
 121       | 10065    |
 10037     | 10065    |
 64        | 10037    |
  10001     | 10076    |
 1         | 10001    |

この結果をPATHのように

upper_path | path
\10076 | \10076\146
\10076 | \10076\10065
\10076\10065 | \10076\10065\121
\10076\10065 | \10076\10065\10037
\10076\10065\10037\ | \10076\10065\10037\64
\10076 | \10076\10001
\10076\10001 | \10076\10001\1

などという結果を取得したいのですが、うまく出来ません。
関数は、PL/pgsqlで作成しました。
よろしくお願いします。




pgsql-jp メーリングリストの案内