プロが教えるわが家の防犯対策術!

お世話になります。

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

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わかります。

A 回答 (1件)

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)に該当します。
    • good
    • 4
この回答へのお礼

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

お礼日時:2014/07/31 10:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A