![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下のようなデータがあります。
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ランキング
-
複数のテーブルから値を合計出...
-
SQLです教えてくださいお願いし...
-
SQLで、同じ値が何回連続す...
-
SQLローダーCSV取込で、囲み文...
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
select文の実行結果に空白行を...
-
レコードの登録順がおかしい
-
並べ替えについて
-
テーブルのフィールドの一番長...
-
単一グループのグループ関数で...
-
テーブルの最後(最新)のレコー...
-
【SQL】違うフィールド同士の集...
-
Oracleで「文字が無効です」の...
-
結合したテーブルに名前をつけ...
-
ファイルの漢数字の順番につい...
-
MSDOS ソート sortf 使用方法
-
アクセスに関して。クエリの並...
-
「数字で始まらない」ものを抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
複数のテーブルから値を合計出...
-
最新の日付と2番目の日付のデー...
-
日付検索で0001-01-01 00:00:00...
-
SQLで、同じ値が何回連続す...
-
SQL 重複しないJoinの仕方を教...
-
SQLです教えてくださいお願いし...
-
DISTINCTROWについてです。
-
MySQLのdatetime型に0月0日を格納
-
mysqlでunixtimeによる日付範囲...
-
NULLは表示順最下位
-
日付・・・insertとselect
-
項目1の日付順に並べ項目2の...
-
先期末日の日付を求めるSQL
-
下記の問合せを行うクエリを、 ...
-
【ExcelVBA】入力された日付か...
-
SQL文の作成について
-
MySQLで特定のグループの上位3...
-
レコードのコピー
-
mysqlのif文かcase文で複数条件...
おすすめ情報