こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessで最新のレコードを抽出するには

お世話になります。

このようなテーブルがあるとします。

No|日時     | 部門  | 更新内容 
--+------------+--------+----------
1 |04/12 12:21:35| A部門 | 更新C
2 |04/07 09:15:05| B部門 | 更新う
3 |04/19 08:23:45| A部門 | 更新A
4 |04/05 10:15:20| B部門 | 更新あ
5 |04/20 09:20:13| B部門 | 更新い
6  |04/02 09:20:15| A部門 | 更新B

この中から部門毎にグループ化して
部門毎に日時の最新のデータ

No|日時     | 部門  | 更新内容 
--+------------+--------+----------
3 |04/19 08:23:45| A部門 | 更新A
5 |04/20 09:20:13| B部門 | 更新い

を抜き出すクエリの作り方を教えてください。
ちなみに今困っているDBの更新内容に相当するフィールドは50フィールドほどあります。
よろしくお願いします。

多分クエリの集計を使用すると思っています。
多少ですがSQLわかります。
多少ですがVBAわかります。

投稿日時 - 2014-07-26 22:47:02

QNo.8693660

困ってます

質問者が選んだベストアンサー

SQLを考える時は理論の組み立てが肝要です。
(1)部門別に日時の最大値を求める。
(2)テーブルから、部門と日時が(1)と同じものを求める。
厄介なのは英語だから逆になることです。

SELECT A.* FROM テーブル AS A INNER JOIN
(SELECT 部門,MAX(日時) AS 日付 FROM テーブル
GROUP BY 部門) AS B
ON A.部門=B.部門 AND A.日時=B.日付

()の中のサブクエリが(1)になります。外側のSELECTが
(2)に該当します。

投稿日時 - 2014-07-27 09:26:00

お礼

ありがとうございました。
解説もわかりやすかったです。
助かりました。

投稿日時 - 2014-07-31 10:13:23

ANo.1

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問