[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 メーリングリストの案内