[pgsql-jp: 38710] その日の価格を一覧から取り出す
Atsushi NISHIMURA
a2c @ lets-heart.co.jp
2007年 8月 31日 (金) 13:48:47 JST
西村です。
毎度利用させていただいてます。
期間中のある1日の一番安い価格を一覧から取り出したいのですが、
どうDMLを書けばよいのか頭を悩ましてます。
こういうテーブルとレコードを入れています。
create table t_kakaku(
商品CD varchar(13) ,
価格 numeric(12,2) ,
開始日 date ,
終了日 date
);
商品CD 価格 開始日 終了日
-------+------+------------+-----------
A001 , 100 , 2007-01-01 ,2007-03-31
A001 , 150 , 2007-02-01 ,2007-02-28
A001 , 50 , 2007-02-15 ,2007-02-17
A001 , 10 , 2007-02-15 ,2007-02-17
調べたいのは、2007-02-16当日の一番安い価格とします。
目でみたら最下段の 10円がそれに該当するのですが、
ここまでやってみました。
select
vt.商品cd ,min(vt.期間) ,min(vt.価格)
from (
selecr
age('2007-02-16'::date ,開始日) as 期間 ,
商品cd ,価格
from
t_kakaku
group by
期間 ,商品cd ,価格
) as vt
where
vt.商品cd = 'A001'
group by
vt.商品cd;
これだと、その商品cd「A001」のもので「期間」が一番小さい値と、
「価格」の中で一番小さな値が表示されます。
「指定した日付はこの範囲内にある」 という風にみるには
どのようにしたらよいでしょうか?
なにかヒントなどありましたらご教授のほど、よろしくお願いいたします...
pgsql-jp メーリングリストの案内