• 締切済み

区分ごとに2番目に新しいデータを取得するには?

下記のようなデータがあった場合、それぞれの区分毎に年月が最新のデータと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)の混在でもかまいません。 よろしくお願いします。

みんなの回答

回答No.1

RDBMSは、ここのカテゴリ通りSQL Serverですか? バージョンは? もし、SQL Server 2005なら、分析関数でRANK()を使えるので、より簡単に記述できます。

todo36
質問者

お礼

ありがとうございました。 とりあえず解決しました。 --- テーブルに連番列を追加 SELECT a.* FROM テーブル a WHERE 連番 IN (SELECT TOP 2 連番 FROM テーブル b WHERE b.区分 = a.区分 ORDER BY 日付 DESC) ORDER BY a.区分

todo36
質問者

補足

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

関連するQ&A