Accessで最新のレコードを抽出する方法

このQ&Aのポイント
  • Accessで最新のレコードを抽出する方法について教えてください。
  • 部門毎にグループ化して、最新の日時のデータを抽出するクエリの作り方を教えてください。
  • フィールドが多い場合でも、集計を使用して最新のデータを抽出する方法を教えてください。
回答を見る
  • ベストアンサー

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

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.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)に該当します。

souta_n
質問者

お礼

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

関連するQ&A

  • ACCESS2000でのレコード抽出

    OS:WindowsXP ACCESS2000 あるフィールドの値が最大となるようなレコードを選択クエリで 抽出しようとしているのですがうまくいきません。 テーブルのフィールドは4個あります。 テーブル [系列] [優先度] [データ1] [データ2] ここで各系列ごとに優先度が最大となるレコードのみを 抽出したいのです。 系列、データ1、データ2は重複がありえます。 優先度は系列を跨いだ重複はありますが、 同系列内での重複はありません。 レコードの例) 1:系列A 優先度1 データA データB 2:系列A 優先度2 データC データD 3:系列B 優先度1 データE データF 上記の例で言いますと、レコード2:とレコード3:のみを 抽出するクエリを作成したいのです。 集計クエリで優先度のフィールドを「最大」にしても、 3つのデータ全てが抽出されてしまいます。 どなたか解決策をご教示ください。

  • アクセスのクエリでパラメータを表示させない方法は?

    超初心者の質問ですみません。。 アクセスのクエリで、ある数字の全体に対して占める割合を求めるため、以下のような式をいれています。 フィールドC: [フィールドA]/[フィールドB] このクエリを開いたときに毎回パラメータが表示されるのですが、これを表示させないためにはどのようにすればよいのでしょうか?OKを2回押せばきちんと計算された値が入ってくるのですが、毎回OKを押さずに開けるようにしたいです。 ちなみに、フィールドAとフィールドBは、あるテーブルに入っている値をクエリ側で 集計 を「合計」に設定して求めた値が入っていて、フィールドA~Cは同じクエリの中にあります。 VBAやSQLはまったく理解できません。 よろしくお願いします。

  • アクセスの抽出について

    アクセス超初心者です。仕事で営業成績の集計をしています。営業担当者ごとの管理の仕方で困っています。 基本のtblは担当者名、日時、区分(aまたはbを選択)、営業内容(項目1~6の中から1つを選択する形式)、受注数、成約数で構成されているものです。  月別で、営業内容の項目1を除いたものの集計で、aの件数、bの件数、aとbの合計、営業内容の項目3の件数、受注数の合計、成約数の合計を出したいのです。  一度で出せるクエリの作り方があれば教えていただきたいです。本当に基礎知識しかありません。  一度で出なければどんなテーブルやクエリが必要か教えてください。

  • アクセスでのフィールド2列からの抽出と合計

    OS:Win XP Access Version:2003 すみません。どうしてもわからなかったので教えてください。 フィールド名  種 類   部 門  金 額          A     111   8000          B     120   7500          C     450   1000          A     750   3000          C     111   4500          B     120   6000 こんな感じのテーブルがあり、例えば種類Bの部門120の金額の合計を出したいとき、 どんな感じにクエリを作ればいいんでしょうか? SQLでもかまいません。

  • アクセスの特定のレコード抽出方法

    アクセスで、同じ内容のレコードで更新日時フィールドのみ変化している複数のレコードから、更新日時の新しいレコードのみを抽出する方法を教えてください。

  • access 重複しているレコードを抽出したい

    2010です。 テーブル1 testフィールド a a b b c の場合、aとbが重複していますが クエリで、 a b もしくは a a b b を抽出する方法を教えてください。

  • ACCESS2000の重複クエリ

    よろしく、お願いします。 ACCESS2000+Win2000で使用しています。 ACCESS2000の”テーブルA”の”フィールドa”の”重複クエリ甲”の結果としてX、Y、Zというデータが出たとします。 そのうち、XのみにテーブルAの”フィールドb(Yes/No型)”にフラグを立てたいのですが、良い方法はありませんか? 私は重複クエリ甲に、更新クエリで更新する事は出来ませんよね? 甲と同じく”重複クエリ乙”を作って、乙は”集計”で先頭のみを出して、甲と乙の”不一致クエリ”で差分を出してみたりもしたのですが、更新クエリを使えない為に、フラグを立てられません。 何か良い方法を教えてください。 お願い致します。

  • Access2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

    AとBという2つのテーブルが、全く同じフィールドを30個持っています。 AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが [B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に 手入力する方法で現在行っています。 追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが 同様に更新クエリでもフィールド名を自動的に出す方法はありますか? 現在上記のような更新クエリを10件以上新規で作成しなければならないのですが 各件に29個も手入力で行うのが非常に面倒でなりません。 やはりSQL等で仕組んでいくようにするのでしょうか?

  • ACCESSでレコードのコピー

    ACCESS初心者です。 テーブルt_Aとt_Bがあり、t_Aを元にしたフォームがあるとします。 行いたいのはこのフォームでレコードを選択しボタンをクリックして t_Aの該当レコードのフィールドの値をt_Bのフィールドにコピー(新規追加)したいのです。 追加クエリでなんとかなるかなと思ったのですが思うようなクエリが作れないのです。 アドバイスをいただけませんでしょうか。 マクロ、VBAの利用方法についてはほぼわかっております。

  • ACCESS フォームで抽出条件の違うレコード表示

    宜しくお願いします。 ACCESSでレコードソースをQ_Bとするフォームに、ヘッダー部分に別のクエリ(Q_Aとします)のデータを表示させようと思っています。 Q_Aのデータを元にフォーム内でnoごとに表示するテキストボックス(リストボックスなどでも可)を変えて表示させたいのですがうまくいきません。 Q_Aは No 日付 1 1/15 2 2/1 3 2/5 4 3/12 ・・・レコード数は10あります。 Q_Aの日付フィールドのみ一定期間ごとに変更します。 ですので、一つのテキストボックスには例えば Noのフィールドの「1」のレコードが表示されるようにしたいのです。 Q_Aを元に、レコード数10が個別に表示されるテキストボックス等を、VBAなど?で抽出条件を指定しておきフォームを開いた際に表示できるようにしておきたいのですが、どのような方法があるかご教授願えますでしょうか? よろしくお願い致します。