• 締切済み

Access:クエリでのグループ化と最大について

アクセスの初歩的な質問なんですが・・・ 以下のような2つのテーブルがあり、各グループに属しているナンバーから数が最大のものを取り出したいと考えています。 このときはどのようなクエリを作成すればよいでしょうか・・・? テーブル1 A abc15 A abc16 A abc17 A abc18 A abc19 B bbb22 B bbb35 B bbb77 B bbb45 B bbb88 B bbb65 C cx7 C cvc1 D dat1 D dat2 テーブル2 abc15 5 abc16 10 abc17 15 abc18 3 abc19 4 bbb22 12 bbb35 45 bbb77 78 bbb45 15 bbb88 1 bbb65 16 cx7 15 cvc1 18 dat1 13 dat2 185 クエリ A abc17 15 B bbb77 78 C cvc1 18 D dat2 185 会社の業務で使うことになり困っています。 よろしくお願いいたします。m(_ _)m

みんなの回答

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

1.テーブル1とテーブル2をつなげただけのクエリを作成する。 フィールド:グループ・ナンバー・数 ※グループの中での最大値を取る為の準備 2.1で作成したクエリを元としもう一つクエリを作成する。 フィールド:グループ・数(ナンバーは使用しない) 内容:グループでグループ化し、数は最大値とする ※グループ内での最大値を取る為 3.1・2で作成したクエリを元とし更にクエリを作成する。 フィールド:グループ・ナンバー・数 結合:グループと数 結合プロパティ:2で作成したクエリの全レコードと1で作成したクエリの同じ結合フィールドのレコードだけを含める ※グループ毎の最大値にナンバーを付ける為 手間かもしれませんがいかがでしょうか? ちなみに1グループの中で数の最大値が2つある場合は 両方抽出されると思います。

carrity64k
質問者

お礼

やはりその方法しかありませんよね・・・ とりあえずこれで何とかしてみようと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessクエリでのグループ化

    Accessクエリでのグループ化 以下の2つのテーブルが有ります。 ■社員テーブル ID 名前 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん ■受付テーブル ID 受付内容 受付日   社員ID 1  xxxxx 2010/3/1   1 2 xxxxx 2010/3/20   3 3 xxxxx 2010/4/10   2 4 xxxxx   2010/4/11  5 5 xxxxx 2010/4/15  1 6 xxxxx 2010/4/30  2 7 xxxxx 2010/5/3  4 そこで社員毎の受付数をカウントしたいと思っています。 ※受付日が2010/4/1以上5/1未満 名前 受付回数 Aさん 1 Bさん 2 Cさん 0 Dさん 0 Eさん 1 となるイメージです。 しかし、実際にクエリを作ると結果が 名前 受付回数 Aさん 1 Bさん 2 Eさん 1 と、なってしまいます。。 名前:グループ化 受付テーブルのID:カウント 受付日:>=2010/04/01 and <2010/05/01 ※社員テーブルの『ID』と、受付テーブルの『社員ID』を  紐つけており、結合プロパティでは『社員テーブルの  全レコードと受付テーブルの同じ結合フィールドのレコード  だけを含める』としております。 あらかじめ、受付テーブルで受付期間の条件でクエリ を作成しておき、それと社員テーブルを紐つけた場合は イメージ通りの結果になるのですが、1つのクエリで 上記イメージでの結果を表示したいと思ってます。 可能でしょうか? ご教授願います。

  • アクセスクエリで特定のみをグループ化

     いつもお世話になっております。  Access2007を使用しています。  さて、アクセスのクエリにおいて、特定のデータだけグループ化したいのですが、やり方が分かりません。理想は、下記例のとおりです。 【例】 テーブル名:T_地区 ID 地区名 会費 1  A   100 2  A   100 3  B   100 4  C   100 5  C   100 6  D   100 7  D   100 8  E   100 9  E   100 10 E   100 クエリ名:Q_地区_グループ化 IDの件数 地区名(グループ化) 会費の合計 2件    A          200 1件    B          100 1件    C          100 1件    C          100 2件    D          200 3件    E          300 ※Cは同名ですが、別々の地区となるため、C地区のみグループ化ならないようにしたいです。  どうかご教示を、よろしくお願いいたします。

  • グループ化+最大値

    お世話になっております。GomiYasikiです。 以下のような場合で、フィールドAが同じ中のフィールドBが最大値のものを抽出する場合はどのようにすればよいのでしょうか? お手数ですが、宜しくお願い致します。 テーブル名:テーブルA フィールドA,フィールドB,フィールドC AAAAA,1,ABC AAAAA,2,XYZ BBBBB,1,ABC BBBBB,2,DEF CCCCC,1,AAA ↓結果 AAAAA,2,XYZ BBBBB,2,DEF CCCCC,1,AAA

  • Accessのクエリでフィールド名を追加

    Accessでマスタのテーブル1があります。 その中には ID   名前  グループ 1   Aさん   555 2   Bさん   555 3   Cさん   666 4   Dさん   666 IDはオートナンバーで主キーにしています。 ただ単純に上記のテーブル1に下記のようにチェックボックスを追加したいと思っています。 ID   名前  グループ  チェック 1   Aさん   555      □ 2   Bさん   555      □ 3   Cさん   666      □ 4   Dさん   666      □ チェックはYES/NO型 仕様としてテーブル1がマスタなので変更できない事が条件。 本題ですが、上記の状態でグループCさんにチェックを入れ、コンボボックスでグループが666 and チェックが付いているデータのみ表示するように出来ないでしょうか? クエリで簡単に出来ると思ったのですが、チェックを追加するところでつまづいています・・・。 クエリの抽出条件でグループを666にし、グループの絞込みは出来ると思うのですが・・・。 わかりにくいかと思いますが、よろしくお願いします。

  • Accessのクエリで複数カラムの最大値表示

    Accessのクエリで複数カラムの中から最大のカラムデータを表示させる方法をお教えください。 テーブル名:TBL カラムA,B,Cがあっていずれも整数です。 カラムA,B,Cの最大のデータを表示したいのです。 データの例 A B C 10 14 12 → 14 21 18 19 → 21 15 11 17 → 17 このときSQL文でいえば次のようにすればできるのでしょうが、IF関数2回使わないで一発で最大値を表示させられないでしょうか。 Select iif(A>=B,A,B) as D, iif(D>=C,D,C) as E from TBL; Select Max(A,B,C) as D from TBL; のようなのがないでしょうか?

  • アクセスのクエリで出来る事なのでしょうか?

    以下の様な処理がクエリで出来るものかの判断がつかず、また、出来るとしてもクエリの作り方が判りません。。。 [テーブルA] コード 品名  種類 1111  A    0 1111  A    1 1111  A    2 1111  A    3 2222  B    0 2222  B    1 2222  B    2 2222  B    3 2222  B    4 3333  C    0 3333  C    1 3333  C    2 3333  C    3 3333  C    4 3333  C    5 3333  C    6 以上の様なフィールド構成を持つテーブルです。 「コード」で管理される「品名」の持つ「種類」の列の最大値を、新しく追加した「在庫」列を持つテーブルBの「在庫」列に抽出して以下の様に同一「コード」内に全て書き込みたいと思っておりますが、クエリ作成の勉強を始めたばかりで、上記の様な複雑(?)なクエリの作り方が判りません。 ※簡単なクエリをデザインビューで作ったり、SQL ビューで簡単な改造が出来る位です。 [テーブルB](処理後) コード 品名  種類 在庫 1111  A    0   3 1111  A    1   3 1111  A    2   3 1111  A    3   3 2222  B    0   4 2222  B    1   4 2222  B    2   4 2222  B    3   4 2222  B    4   4 3333  C    0   6 3333  C    1   6 3333  C    2   6 3333  C    3   6 3333  C    4   6 3333  C    5   6 3333  C    6   6 尚、「種類」列の値は必ず0から順番に(012345・・・の様に)並ぶ規則となっております。 テーブルAに「在庫」列を追加挿入してから「種類」の最大値を書き込む方法でも、テーブルB(テーブルAをコピーして「種類」列を追加したテーブル)に書き込ませる方法でもどちらでも問題はありません。 どなたかご教示頂ければと思います。宜しくお願い致します。  

  • ACCESS初心者です。クエリの抽出条件の記述でお尋ねします。

    ACCESS初心者です。クエリの抽出条件の記述でお尋ねします。 更新クエリの定義で悩んでいます。どうしたら思い通りになるかご指導願います。 ★aaaフォーム a1 txt ★bbbテーブル b1 txt key b2 txt b3 txt ★ccc更新クエリ(bbbテーブル) b1 b2 b3 ★CCCクエリで抽出条件を色々試しますが結果は以下の○×の通りです。 遣りたい事は、aaaフォーム="1"でクエリ[ccc][b2]が"10"以上の場合に、[ccc][b3]を定数で更新させたいのですが、勉強不足で記述がどうしても分かりません。下記のiifはクエリ画面の[ccc][b2]列の抽出条件の記述です。 ○ iif([aaa][a1]="1","10") × iif([aaa][a1]="1",>="10") × iif([aaa][a1]="1",">=10") × iif([aaa][a1]="1","10"or"11"or"12"or"13") win xp pro ACCESS2003 です。 以上

  • Accessのクエリが編集できない

    Access2016で添付画像のようなクエリを作成しました。 しかし、そのクエリが編集できるようにならず困っています。 ・クエリDを削除して、テーブルA・B・Cだけにすると編集できるようになります。 ・クエリDを直接開くとクエリD自身は編集できます。 どうぞご指導ください。

  • 【大至急お願いします!】Accessの更新クエリについて

    あるテーブルA、Bがあり、構造はまったく同じです。 AのデータをすべてBに更新するにはどうすればよいでしょうか? これらのテーブルはかなり項目が多いので、更新クエリ内のレコードの更新にすべて項目をいれないといけないのでしょうか?

  • ACCESS2007でイレギュラーなグループ化は可能ですか?

    たとえば、商品の値段をDB化するときに  テレビ 30000  カメラ 20000  ラジカセ 4000   ・   ・ みたいなテーブルがあったとして、 グループ化を  グループA 9999円以下  グループB 10000円以上19999円以下  グループC 20000円以上49999円以下  グループD 50000円以上 みたいな感じでグループ化して、グループごとの商品数を クエリで求めたいとした場合、できるだけシンプルに分かりやすく 実現する方法はありますでしょうか? グループ化の基準を別テーブルで持たせることを考えたのですが、 その後に行き詰ったりしてしまいました。 今のところ4つしかグループはないので、中間クエリを作って、 新規のフィールドに、  iif(price<5000,"グループA",iif(price<10000,"グループB",iif... という感じにして、そのクエリを元にクエリを作ればいけるかなーと 思ってますが(未確認)、あまり、キレイじゃないのと、 グループ数が増えるとより見づらくなりそうで、 もうちょっとキレイな方法があればと思ってます。 グループ化の基準は別テーブルで持ちたいですが、持った後が考え付かず、、 いい方法をご存知の方教えてください。