みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

【Access2010】グループ化について

お世話になります。
テーブルのグループ化につきましてご教授願います。

あるテーブルに、
 ・ID
 ・ケースID
 ・メモ
 ・登録日
 ・登録時
というフィールドがあります。

例えば、ケースID:100で抽出すると以下のようになります。

ID ケースID メモ登録日 登録時
1  100    xxx  2014/05/10 10:00
2  100    xxx   2014/05/10 10:30
3  100    xxx   2014/05/11 10:10
4  100    xxx   2014/05/12 09:20

そこで、当該ケースIDの最終登録日時を求める為、
 ケースID:グループ化 (条件 100)
 登録日:最大
 登録時:最大
というクエリを作成しました。

結果は、
ケースID 登録日  登録時
100    2014/05/12 10:30
となりました(要するに登録日と登録時のそれぞれの最大)。

本来であれば、2014/05/12 09:20が抽出されて欲しいところですが
そもそもクエリで2014/05/12 09:20を抽出することは可能なので
しょうか。

登録日 & 登録時 にして最大とすればよいかと思うのですが
このやり方以外で何かよい方法があればご教授願います。

なお、以下のようなケースもあるので最後のレコードをひっぱって
くればよい・・という訳でもありません。

ID ケースID メモ登録日 登録時
1  100    xxx  2014/05/10 10:00
2  100    xxx   2014/05/10 10:30
3  100    xxx   2014/05/11 10:10
4  100    xxx   2014/05/12 09:20
5  100    xxx 2014/05/11 17:00

以上、宜しくお願い致します。

投稿日時 - 2014-06-20 15:49:45

QNo.8646086

すぐに回答ほしいです

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

[登録日]+[登録時] で最大するのが一番簡単だと思います。

(ちみなに、& で結合すると文字列になってしまうので、+ で連結した方がいいでしょう。)

それ以外でとなると、逆に複雑になります。

例えば、

 ケースID:グループ化 (条件 100)
 登録日:最大

とういクエリで登録日の最大を求める。

元のテーブルと上記のクエリを登録日と登録日の最大で結合する。これを集計クエリにして、
登録時の最大を求める。


他にも、サブクエリを使うとか、DMax関数を使うとか、考えられますが、複雑になります。

投稿日時 - 2014-06-20 17:19:19

お礼

hatena1989さま
ご回答ありがとうございます。
「&」ではなく「+」でしたね。失礼しました。

やはり複雑になってしまうのですね。。「+」を使う方法で検討してみたいと思います。

勉強になりました。
ありがとうございました。

投稿日時 - 2014-06-20 19:37:02

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

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

回答(1)

あなたにオススメの質問