[pgsql-jp: 24994] Re: レコードをひとつだけ取り出すViewの作り方

h-kato @ hokkaido.nsc-kk.co.jp h-kato @ hokkaido.nsc-kk.co.jp
2002年 2月 27日 (水) 17:06:04 JST


こんにちは。加藤です。

> ここで質問なのですが、下のように顧客の最終来店日と
> そのときの tenpomei を表示する view を作るとすると
> どのような形になるのでしょうか?
>  kokyakuid | namae     |         hizuke         | tenpomei
> -----------+-----------+----------------------------------
>          1 | 'Aさん'   | 2002-03-27 16:02:00+09 | '駅前店'
>          2 | 'Bさん'   | 2002-03-29 16:02:00+09 | '本店'

PostgreSQLを実行する環境を削除してしまったので未検証ですが、おそらく
このようなSQLとなるのでは?(SELECT部のみ抜粋)
単純に、顧客ID毎に最大日付を取得しています。
他に、考慮が必要そうな点として
 売上の無い顧客も対象とする?
 来店テーブルに同一顧客ID、同一時間というデータが発生したら?
 (家族会員が同じ顧客IDを使用しているケース等)
というように、条件によって多少変わりますが...

select
 k.kokyakuid, 
 k.namae,
 r.hizuke,
 r.tenpomei
from kokyaku_table as k,raiten_table r
where
 (k.kokyakuid=r.kokyakuid) and
 (r.hizuke=(
  select max(r2.hizuke)
  from raiten_table r2
  where
   (r2.kokyakuid=k.kokyakuid))
 )

# 加藤



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