降順リンク、SQL文
商品コード別+日付別に、定価を保持しているデータがあります。
商品コード+日付昇順のインデックスを用意しているとします。
例えば以下のようなデータ
コーラ350、1980/01/01、100円
コーラ350、1995/01/01、110円
コーラ350、2003/01/01、120円
コーラ350、2014/01/01、130円
ある時点の定価を取得する際は、
照会リンク降順で
位置付け大に日付をセットすればそれが可能です。
SQL文の場合は、ORDER BY 日付 降順 でTOP 1などで
日付を取得したSQL文をサブクエリにしたSELECTで実現は
確か可能だと思いますし、そういった事もしていますが、
毎回こうだっけああだっけと実験したり、昔書いたのを
探したりしている状況ですが、SQL文の場合はMagicの降順リンクの
ように1発で取得するような事は可能でしょうか?
-
コメント失礼します。
nkmtさんが仰っている通り、以下がSQL文で一発で取得する方法だと思います。
ORDER BY 日付 降順 でTOP 1
逆にそれ以外は方法はないかと思います。
MSSQLの場合
select top 1 定価 from table_name order by 日付 desc
Oracleの場合(ちょっと自信ないですが、こんな感じになるはずです)
select * from (
select 定価 from table_name order by 日付 desc
) A
where rownum=1
-
OBR様、レスありがとうございます。
-
oracleは未使用なのですが、TOP 1はおそらくMSSQLの独自仕様なのでしょうね。
最近SQLコマンドを多用していますので、もしいつかDB変更をする事になった時は大変でしょうね。
寡占して値上げとか。
-
TOP 1はおそらくMSSQLの独自仕様なのでしょうね。
仰る通りで、MSSQLの独自仕様ですね。
この辺はDBMSによってバラバラなので、DB変わる時はマイグレーションが大変になると思います。
そういう意味だと、Magic内で完結していれば、影響度は少ないんですね。あんまり考えたことなかったです。
-
はい、実は私もDB変わる事は考えておりません。今はメリット大なのでSQLコマンドを使っています。
サインインしてコメントを残してください。
コメント
5件のコメント