[pgsql-jp: 36475] Re: サブクエリ内で特定のレコードを抽出したい。

Kiyoshi Mizuno kiyoshi_mizuno @ mail.toyota.co.jp
2005年 11月 30日 (水) 11:28:36 JST


水野です。

> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp  On Behalf Of  Nobuyasu Jinnai/神内伸恭
> 
> ただ、住民.有効開始日と婚姻.有効開始日が等しくない場合があることです。
> 既に、住民登録をしている人は 住民.有効開始日 <= 婚姻.有効開始日である
> 可能性があり、しかも名前や住所を変更している住民は同一の住民IDで
> 複数のレコードを持っています。
> また、住民2人分のレコードを抽出せねばなりません。

前者については単純に
   (婚姻.有効開始日 >= 住民.有効開始日) 
として対応できました。
またINNER JOIN の中で
(婚姻.住民ID2 = 住民.住民ID OR 婚姻.住民ID1 = 住民.住民ID)
と指定してあるのでレコードは2人分抜けます。

ただ後者ですが、対象となる住人の最新情報であれば
小田切さんアプローチのようにMAX(有効開始日)を条件に
加える事でOKだと思うのですが、
多分「婚姻時の情報」を取りたいんですよね。
ちょこっとトライしましたがうまくいかなかったので、
昼休みにでも続きやります。
#Accessではwhere句の中とかではMAX()使えないけど、
 PostgreSQLネイティブなら行けるかな?と期待しつつ。




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