[pgsql-jp: 29802] Re: 再起的にデータ数をカウントするには

Tohru Hayakawa t.hayakawa @ digicom.dnp.co.jp
2003年 5月 8日 (木) 11:40:42 JST


> SELECT count(*) FROM 社員 WHERE 所属部署_cd IN
>  (SELECT 所属部署_cd FROM 部署 WHERE 親部署_cd= 'hogehoe' )

これで試してみたのですが、どうしてもカウントがゼロになってしまいます。

私が考えるには再起部分は

 select *
 from 部署 子エイリアス,部署 親エイリアス
 where 子エイリアス.親部署_cd=親エイリアス.部署_cd

といった具合で書けるように思うのですが、
疑問は
 「もっとも親の部署のコードをどうやって指定するのか」
といった点にあります。

よろしくお願いします。

>> 例えば...
>> ┌───────┐
>> │部署     │
>> ┝━━━━━━━┥
>> │部署_cd  │≪┐≪┐
>> │部署名    │ │ │
>> │親部署_cd │<┘ │
>> └───────┘   │
>> ┌───────┐   │
>> │社員     │   │
>> ┝━━━━━━━┥   │
>> │氏名     │   │
>> │所属部署_cd│≪──┘
>> └───────┘
>> というテーブルがあったとして、
>> ある部署以下の「のべ社員数」を求めるには
>> どのようなSQL文を書けばよいのでしょうか。。




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