• 締切済み

アクセスのクエリでの抽出条件

CD 都市 更新日付 001 秋田 2008/01 002 青森 2008/03 003 秋田 2008/03 004 青森 2008/02 005 札幌 2008/02 上のようなデータがあり、更新日が最新のデータで下のように抽出したいのですが、グループ化ではなく、クエリではどのように抽出条件をいればいいのでしょうか?       003 秋田 2008/03       002 青森 2008/03       005 札幌 2008/02 エクセルに落としDMAX等使用してみましたがうまくいきません。 何かご指導ありましたら宜しくお願い致します。

みんなの回答

  • ricman
  • ベストアンサー率58% (10/17)
回答No.2

レコードが変更されるの意味がよく分からないので教えて下さい。 集計クエリーを実行しても元データに影響は無いですよ。

maki06
質問者

補足

とりあえず、クエリで抽出条件をいれたいんですよ。 もしわからなければいいですよ。 返信ありがとうございました。

  • ricman
  • ベストアンサー率58% (10/17)
回答No.1

アクセスだと下記記述しか無いと思いますが。 グループ化を使えない何か理由があるのでしょうか? SELECT datafile.CD, First(datafile.都市) AS 都市, Max(datafile.更新日付) AS 更新日付 FROM datafile GROUP BY datafile.CD ORDER BY Max(datafile.更新日付) DESC , datafile.CD DESC;

maki06
質問者

お礼

返信ありがとうございます。 グループ化でCDのデータの先頭をもってくる ですとレコードが変更されるからです。

関連するQ&A

  • Access2000抽出方法

    実施者 日付   記録 1   9/8  3分 1   9/10  2分 1   9/11  1分 2   10/1  3分 2   10/2  4分 上記のような場合、実施者毎に最新の日付の記録を抽出する方法。つまり、 実施者 日付  記録 1   9/11  1分 2   10/2  4分 Dmaxを使えば良い気がしますが、うまくいきません。現在、クエリ上にて実施者毎にグループ化して、実施者毎の最高記録、最低記録、平均記録はできたのですが、最新記録がうまくいきません。できれば同じクエリ上で表示できればと思っています。 よろしくお願いします。

  • クエリの抽出条件

    アクセス2003/2007のクエリの抽出条件について テーブル名:履歴 フィールド1:名前 フィールド2:履歴No フィールド3:履歴の内容 フィールド4:日付 とあります。 履歴Noは0の人、1~3まである人、1~10まである人と様々。 指定した名前毎に「履歴Noの最大値から3レコードを抽出してレポートにしたいです。 下記のようにしてみました。 Between Val(DMax("履歴No","履歴"))-2 And Val(DMax("履歴No","履歴")) これでは抽出出来ませんでした。 試しに Between 3-2 And DMax("履歴No","履歴") と直接引き算の式を入れると抽出されました。 ※Valはあってもなくても同じでした。 「履歴Noの最大値から3レコードを抽出」をうまく出来る方法は無いでしょうか。 よろしくお願いします。

  • ACCESS2000でクエリを抽出条件で抽出

    VBA上でクエリの抽出データを取得してファイルに書き込むというプログラムを書いております。 抽出条件として、今日の日付のレコードを取得したいのですが型が一致しませんとエラーになります。 strSQL = "SELECT * FROM " & (クエリー名)& " where (クエリー.カラム名)='" & Format(Date, "yyyy/mm/dd") & "'" クエリーのカラム名は全角漢字です。 どこがおかしいのでしょうか? よろしくお願いいたします。

  • Accessでの抽出について

    Accessでのクエリーでの抽出の方法を教えてください。 たとえば「12345678」といったIDをもたせた人のデータが日付ごとにいくつかレコードがある場合に、クエリーのID欄の抽出条件欄には、「12345678」と入力すれば、その人のデータのみが表示されると思います。 そこで、 (1)その中の日付から、最新のものから3つを抽出したい場合。 (2)その中の日付から、2番目に新しいものを抽出したい場合。 において、クエリーの抽出条件になんて書いたらよいのでしょうか? できましたら、(1)(2)それぞれお答えいただければ幸いです。 どうぞよろしくお願いいたします。

  • access2000での抽出条件

    DBから選択クエリーを作ってある条件を満たすデータを抽出したいのですが、レコードの量が多くて(10万単位)スぺックの悪いPCなので並べ替えをするにも固まってしまって困っています。 同じ名前を持つレコード群の中で最新の日付のレコードだけを抽出する関数ってありますか? 例えば 発生日,名前,種類,住所,電話番号 の5つのフィールドがあり、その中で同じ"名前"を持つ"発生日"の中で最新の日付だけを抽出する、として教えていただけないでしょうか。 よろしくお願いいたします。

  • Access 抽出クエリーについての条件

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

  • アクセスのクエリでの抽出条件

    アクセスのクエリでの抽出条件で フィールド1とフィールド2とフィールド3 にデータがなければ1とフラグを立てるようにしたいのですが うまくいきません。 IIf([フィールド1]=Null and [フィールド2]=Null and [フィールド3]=Null,1,0) としてみたのですがうまくいきません。 ご指導お願い致します。

  • クエリーの抽出条件について

    「作表条件」というフォームにテキストボックスとして「日付1」、「日付2」を設置しています。 元のテーブルには「日付」という項目があり、「日付1」から「日付2」までのデータを抽出するため、 クエリの条件式に Between Nz([Forms]![作表条件]![日付1],#1800/01/01#) And Nz([Forms]![作表条件]![日付2],#9999/12/31#) と記述しています。 ただ、元のテーブルの日付がNULL値の場合があり、その場合「日付1」および「日付2」が空欄だとNULL値のレコードが抽出されません。 「日付」がNULLの場合でも抽出できるようにするには、どのようにすればよいでしょうか? どなたか教えてください。

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

  • Accessのクエリでフィールドの一番大きな数字を抽出させるには?

    OSはWin98SE Access2000です。 多分簡単なことなのかもしれないのですが、追加クエリの抽出条件を使って、 その列(更新回数)でいちばん大きな数字のみ別テーブルに抽出(追加)させたいのですがその式がわからず悩んでいます。 例(主キーなし) 店番号|商品番号|更新回数|金額|・・・ 001 |A021  |  2 |300 |・・・ 002 |A034  |  1 |200 |・・・ 001 |A122  |  1 |150 |・・・ 001 |A043  |  3 |500 |・・・ 上記で店番号001が3データ入っている中の更新回数が3のデータのみ別のテーブルに追加したいのですが、最大を求めるのでMaxやDMaxを使用したらよいのかな?などと思ったのですが、その先の式の書き方がわからないのでどなたか教えていただけませんか。 どうぞよろしくお願いします。