- - PR -
SQLでの最新日のデータの取得方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-10-30 16:11
お世話になります。
下記のようなデータの中から、品番ごとに最新日の単価を取得するようなSQLを記述することはできるのでしょうか?
よろしくお願いいたします。 | ||||||||
|
投稿日時: 2008-10-30 16:20
普通に GROUP BY で取れませんか?
それよりデータベースは何ですか? | ||||||||
|
投稿日時: 2008-10-30 16:32
データベースはOracle9i(9.2.0.7.0)です。
GROUP BYで下記のような記述をした場合、エラーになってしまいます。
よろしくお願いいたします。 | ||||||||
|
投稿日時: 2008-10-30 16:49
GROUP BY と HAVING でできますよ。
| ||||||||
|
投稿日時: 2008-10-30 17:23
> GROUP BYで下記のような記述をした場合、エラーになってしまいます。
GROUP BY を使用して場合、SELECT句に記述出来るのは、GROUP BYで指定したカラム(品番) もしくは、集計関数を用いた結果(MAX(購入日))のみとなります。 対応する単価が必要なら、テーブル結合で取って来ると良いと思います。
こんな感じでしょうか。 | ||||||||
|
投稿日時: 2008-10-30 17:32
とか。 ただし品番と購入日がキーになると考えるとです。 同じ品番、購入日のレコードが複数ある場合はまた別の方法にしないといけないと思います。 | ||||||||
|
投稿日時: 2008-10-30 21:26
(品番、購入日)の複合キーで、ユニークになるのでしょうかね?
そういったことも、事前に説明してください。 Oracle自体、もう何年も使っていないのですが、分析関数を使った方が記述も簡単で、性能も出たりしませんか? | ||||||||
|
投稿日時: 2008-10-30 21:31
自分もやんちさんや、Kingさんと同じく、
品番と最新日の組み合わせを、 サブクエリで用意する方法しか思いつきませんでしたが、 Java僧さんのおっしゃるGROUP BY と HAVINGを使った方法を知りたいです。 |