- ベストアンサー
AccseeのSQL文について教えてください。
テーブルに次のようなデータがあるとします。 ID 名前 分類 時間 001 tarou 社会 02:02 002 ichiro 社会 02:04 003 yamada 社会 02:04 004 ichiro 理科 02:05 005 tarou 理科 02:07 006 yamada 数学 02:08 007 tarou 数学 02:09 008 ichiro 数学 02:10 この中から、分類ごとに最後の時間(一番大きな時間)を抽出しますがどのよなSQLを組めばいいのか解りません。どなたか詳しいかたいらっしゃいましたら教えてください。 欲しい抽出結果 003 yamada 社会 02:04 005 tarou 理科 02:07 008 ichiro 数学 02:10 時間が同じ場合は、IDの大きい方を選びたいです。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
AccessでのSQLのサポート状況が分かりませんが。。。 次のSQLを試してみてください。 select w.id,w.名前,w.分類,w.時間 from t1 as w inner join (select max(id) as id,x.分類,x.時間 from t1 as x inner join (select 分類,max(時間) as 時間 from t1 group by 分類) as y on x.分類=y.分類 and x.時間=y.時間 group by x.分類,x.時間) as z on w.id=z.id and w.分類=z.分類 and w.時間=z.時間
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
IDの抽出条件欄に In (select max(ID) from テーブル名 as A where A.時間 in (select max(時間) from テーブル名 as B where B.分類=テーブル名.分類)) SQLなら SELECT テーブル名.ID, テーブル名.名前, テーブル名.分類, テーブル名.時間 FROM テーブル名 WHERE (((テーブル名.ID) In (select max(ID) from テーブル名 as A where and A.時間 in (select max(時間) from テーブル名 as B where B.分類=テーブル名.分類))));