アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のようなデータがあった場合、それぞれの区分毎に年月が最新のデータと2番目に最新のデータを取得したいです。

<検索対象データ>
区分 年月   金額
-----------------------------
A   200411  700
A   200412  600
A   200503  560
B   200311  600
B   200508  1000
B   200504  560
C   200508  400
C   200301  1100

<取得したいデータ>

(1)区分ことに年月が最新のデータ

区分 年月   金額
-----------------------------
A   200503  560
B   200508  1000
C   200508  400

(2)区分ことに年月が2番目に最新のデータ

区分 年月   金額
-----------------------------
A   200412  600
B   200504  560
C   200301  1100


(1)に関してはこちらに回答があります。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1439772

(2)のデータを取得する方法を教えていただきたい。
(1)と(2)の混在でもかまいません。
よろしくお願いします。

A 回答 (1件)

RDBMSは、ここのカテゴリ通りSQL Serverですか?


バージョンは?

もし、SQL Server 2005なら、分析関数でRANK()を使えるので、より簡単に記述できます。

この回答への補足

環境を書き忘れてすいません。
ミニマム環境は、SQL Server 2000 Desktop Engine (MSDE 2000) Release A です。

補足日時:2008/01/26 18:51
    • good
    • 0
この回答へのお礼

ありがとうございました。
とりあえず解決しました。
---
テーブルに連番列を追加

SELECT a.*
FROM テーブル a
WHERE 連番 IN (SELECT TOP 2 連番 FROM テーブル b WHERE b.区分 = a.区分 ORDER BY 日付 DESC)
ORDER BY a.区分

お礼日時:2008/01/29 13:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!