• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのクエリでフィールドの一番大きな数字を抽出させるには?)

Accessクエリでフィールドの一番大きな数字を抽出する方法

このQ&Aのポイント
  • Accessのクエリでフィールドの一番大きな数字を抽出する方法を教えてください。
  • 追加クエリの抽出条件を使用して、指定の列で最大の数字のみ別のテーブルに抽出する方法を教えてください。
  • 店番号が指定の値で、更新回数が最大のデータのみ別のテーブルに追加する方法を教えてください。

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

  • ベストアンサー
  • stork
  • ベストアンサー率34% (97/285)
回答No.3

三度storkです。 蛇足ですが、先ほどの回答は、SQLを直書きするものだったんで、練習用にGUIでの操作で最新データの取り出し方を補足しておきます。 from句に入っているSQLをクエリとして保存してください。 クエリ名は、[最新データ] ------------------------------------------- select 店番号,max(更新回数) as max更新回数 from [PC売上_T] group by 店番号 ------------------------------------------- どんなクエリになっているかは、デザインビューとデータシートビューで確認してください。 もうひとつクエリを作ります。 デザインビューで[PC売上_T]とさっき作った[最新データ]を追加して、店番号で結合し、さらに更新回数で結合します。結合線がふたつ出来ます。 これで最新のデータのみを抽出するクエリの出来上がりです。 この二つのクエリを一回で済ませると、#1のSQLになります。クエリを二つに分けていると誤ってクエリ[最新データ]を削除すると動作しなくなるので、出来るだけひとつにしましょう。

tokin
質問者

お礼

storkさん回答ありがとうございます。 また、質問しておきながらお返事が遅くなりまして申し訳ありません。 直書きのSQLは、まだみて理解できるところまで行っていないので 勉強して行きたいと思っています。 補足でいただいたGUIでの操作ありがとうございます。 これなら私にもわかりそうです早速試してみます。 昨日に続き今日も外出になりそうですのでこの質問は一度閉じさせていただきます。 もし、実行してみてわからないときは、また質問させてください。 そのときはどうぞよろしくお願いいたします。 本当に勉強になりますありがとうございました。

その他の回答 (2)

  • stork
  • ベストアンサー率34% (97/285)
回答No.2

似たような質問だと思ったら同じ方でしたか、失礼しました。 >SQL中のtable1やtable2は指定するテーブル名を指定し >たら良かったでしょうか。 回答#1のSQLはひとつのテーブルを切り口を変えて自己結合しています。 table1はテーブル名で、table2はtable1を元にしたクエリに別名(仮の名前)をつけているだけなんで、何でもいいです。 補足の内容からいくとtable1は[PC売上_T]ですかね。 >教えていただいたSQLはどこの部分に追加したらよいので>しょうか。 [PC売上_T]が履歴形式のトランザクションで、[PC売上_M]が最新情報のマスタですね。 from句以下を ----------------------------------------------- from [PC売上_T]    inner join    (select 店番号,max(更新回数) as max更新回数     from [PC売上_T] group by 店番号 ) as 最新データ    on ([PC売上_T].店番号 = 最新データ.店番号)    and ([PC売上_T].更新回数 = 最新データ.max更新回数) ------------------------------------------------ ※別名が[table2]だと分かりにくいので[最新データ]としました。 ただ追加するだけだと、前の質問(http://www.okweb.ne.jp/kotaeru.php3?q=155505)と同じ問題が発生すると思われますので、何らかの方法で回避してください。(分からなければ補足してください。)

  • stork
  • ベストアンサー率34% (97/285)
回答No.1

過去ログに同じ問題があるのでそれの応用だと思います。 店番号+更新回数でユニークになりますね。 select * from table1 inner join (select 店番号,max(更新回数) as max更新回数 from table1 group by 店番号)as table2) on (table1.店番号=table2.店番号) and (table1.更新回数=table2.max更新回数)

tokin
質問者

補足

storkさんたびたびありがとうございます。 また、返事が遅くなりすみません。 昨日回答いただいてから色々とやってみたのですが、私のSQL知識不足でうまくいきませんでした。 すみませんが少し質問させてください。 SQL中のtable1やtable2は指定するテーブル名を指定したら良かったでしょうか。 それと追加クエリで現在 INSERT INTO PC売上_M(店番号,商品番号,更新回数,金額・・・) SELECT [PC売上_T].[店番号],[PC売上_T].[商品番号],[PC売上_T].[更新回数],[PC売上_T].[金額]・・・ FROM PC売上_T; のような感じであるのですが、教えていただいたSQLはどこの部分に追加したらよいのでしょうか。 お手数ですがどうぞよろしくお願いします。