![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
以下のようなデータがあります。
id 顧客コード 日付 金額
1 A001 2012/12/25 100
2 B001 2012/12/24 200
3 A001 2012/12/24 100
4 C001 2012/12/23 500
5 A001 2012/12/23 300
6 B001 2012/12/23 100
このデータを、顧客毎に最新順で表示したいのです。
順番は、
1.最新の日付順に顧客がまず並ぶ
2.その顧客の並び順で、顧客毎に日付が新しい順に各データが並ぶ
説明が下手ですが、下の様に
1 A001 2012/12/25 100
3 A001 2012/12/24 100
5 A001 2012/12/23 300
2 B001 2012/12/24 200
6 B001 2012/12/23 100
4 C001 2012/12/23 500
A001、B001、C001の中で、最新の日付を持っているのがA001→B001→C001なので、その順で並ぶ。
(SELECT 顧客コード, MAX(日付) FROM tbl GROUP BY 顧客コード かな?)
さらに、その顧客の中で日付順にデータが並ぶ。
このように抽出するには、どのようなSQL文で行うのでしょうか。
サブクエリを使うのかなとは思うのですが、あまり理解できていないため思いつきません。
わかるかたよろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんな感じでしょうか?
create table hoge (id int,user varchar(20),d date,num int);
insert into hoge values
(1,'A','2012/12/25',100),
(2,'B','2012/12/24',200),
(3,'A','2012/12/24',100),
(4,'C','2012/12/23',500),
(5,'A','2012/12/23',300),
(6,'B','2012/12/23',200);
select t1.id,t1.user,t1.d,t1.num
from hoge as t1
inner join (
select user,max(d) as max_d from hoge group by user
) as t2 on t1.user =t2.user
order by max_d desc,user asc,d desc
回答ありがとうございます。
お返事が遅くなりました。
試してみたところ、思い通りの結果を得ることができました。
ありがとうございます。
なるほど、このようにするのですね。また一つ勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Excel(エクセル) Excelで、別シートへ情報を参照表示する関数について。 2 2023/06/26 09:58
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- その他(ソフトウェア) 現在と過去の顧客名簿、新規・解約・更新など作りたいのですが「やよいの顧客管理」なら簡単に扱えますか? 1 2022/05/18 10:44
- その他(データベース) accessについて 2 2022/05/31 16:58
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
直近1ヶ月に誕生日を迎える社員...
-
<SQL>重複しているデータの場合...
-
SQLで、同じ値が何回連続す...
-
項目以外の文字列は連結できま...
-
NULLは表示順最下位
-
文字2桁、3桁交じりの文字列...
-
SQLローダーCSV取込で、囲み文...
-
select文の実行結果に空白行を...
-
2つの列が同じ値の行を取得するSQL
-
1の行を固定した上でVBAを用い...
-
テーブルの最後(最新)のレコー...
-
ファイルの漢数字の順番につい...
-
AccessのSQL文で1件のみヒット...
-
単一グループのグループ関数で...
-
レコードの登録順がおかしい
-
where句中のtrim関数について
-
小数点以下桁数が最大の値に小...
-
count関数の値をwhere句で使用...
-
月末日のみソートしたい
-
並べ替えについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のテーブルから値を合計出...
-
<SQL>重複しているデータの場合...
-
SQLです教えてくださいお願いし...
-
SQLです。下記の問合せを行うク...
-
下記の問合せを行うクエリを、 ...
-
SQL 重複しないJoinの仕方を教...
-
最新の日付と2番目の日付のデー...
-
mysqlに格納されている日付のデ...
-
DISTINCTROWについてです。
-
SQLで、同じ値が何回連続す...
-
直近1ヶ月に誕生日を迎える社員...
-
NULLは表示順最下位
-
MySQLで日付(date)型のdefaul...
-
MySQLで特定のグループの上位3...
-
MySQLのdatetime型に0月0日を格納
-
「8月の第3土日」をデータベ...
-
型変換
-
日付検索で0001-01-01 00:00:00...
-
Mysqlで最新の日付を持つデータ...
-
NULLの値ってupdateで評価され...
おすすめ情報