- 締切済み
区分ごとに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)の混在でもかまいません。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
RDBMSは、ここのカテゴリ通りSQL Serverですか? バージョンは? もし、SQL Server 2005なら、分析関数でRANK()を使えるので、より簡単に記述できます。
お礼
ありがとうございました。 とりあえず解決しました。 --- テーブルに連番列を追加 SELECT a.* FROM テーブル a WHERE 連番 IN (SELECT TOP 2 連番 FROM テーブル b WHERE b.区分 = a.区分 ORDER BY 日付 DESC) ORDER BY a.区分
補足
環境を書き忘れてすいません。 ミニマム環境は、SQL Server 2000 Desktop Engine (MSDE 2000) Release A です。