Access2010でのクエリ抽出方法

このQ&Aのポイント
  • Access初心者でもわかるクエリ抽出の方法を解説します。
  • 具体的な例を挙げながら、テーブルから条件に合うデータを抽出する方法を紹介します。
  • グループ化や最大値の取得についても詳しく解説しています。
回答を見る
  • ベストアンサー

access2010 クエリ抽出

Access初心者です。 Access2010でのクエリ抽出について 下のようなテーブルがあります。 年,月,受注NO,精算カウンタ,紹介区分,紹介者コード 2013,4,11111,1,01,000001 2013,4,11112,1,01,000001 2013,4,11113,1,01,000002 2013,4,11111,2,01,000002 2013,4,11114,1,02,000003 2013,4,11115,1,02,000002 2013,4,11114,2,01,000001 2013,4,11114,3,01,000002 このテーブルから、下記のように精算カウンタが最大のものを抽出したいのですが、 どのようにグループ化をすればよいのかわかりません。 2013,4,11111,2,01,000002 2013,4,11112,1,01,000001 2013,4,11113,1,01,000002 2013,4,11114,3,01,000002 2013,4,11115,1,02,000002 ご教授いただけると幸いです。 よろしくお願いします。

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

  • ベストアンサー
  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.1

正しいやりかたかどうか分かりませんが、下記SQLでとりあえず同じ結果にはなります。 T:元テーブル Q:Tを年,月,受注NOでグループ化し、精算カウンタは「最大」 QにTを年、月、受注NO、精算カウンタで紐付けて、紹介区分と紹介者コードを引っ張ってきて表示してます。 SELECT [Q].年, [Q].月, [Q].受注NO, [Q].精算カウンタの最大, [T].紹介区分, [T].紹介者コード FROM (SELECT T.年, T.月, T.受注NO, Max(T.精算カウンタ) AS 精算カウンタの最大 FROM T GROUP BY T.年, T.月, T.受注NO) as Q INNER JOIN T ON ([Q].年=T.年) AND ([Q].月=T.月) AND ([Q].受注NO=T.受注NO) AND ([Q].精算カウンタの最大=T.精算カウンタ) ORDER BY [Q].受注NO;

arodarod
質問者

お礼

ありがとうございます。希望通り出来ました。勉強になりました。

関連するQ&A

  • Access2010 クエリ作成 超初心者

    以下のテーブルがあります テーブル:受注no、売上日、キャンセル区分… 12345、2013/9/20、 12346、2013/9/20、 12347、2013/9/21、 12348、2013/9/25、 12346、2013/9/26、1 12348、2013/9/30、1 クエリを使用して、キャンセル区分に1が入力されていない受注noのカウントをしたいのですが、クエリ1回でカウントする方法がありましたら教え いただきたく思います 。 よろしくお願いします。

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

  • Access2003 一つのクエリで結果を出したい

    お世話になります。 下記テーブルを紐付けてクエリを作成します(Access2003)。 受注テーブル  ・ID  ・コード  ・数量 検品テーブル  ・ID  ・コード  ・検品フラグ マスターテーブル  ・ID  ・コード  ・印刷フラグ 検品テーブルのレコードは、受注テーブルの数量合計が展開されたレコード数となります。例えば、AAAというコードで数量合計が8の場合、検品テーブルではAAAのレコードが8レコード存在することになります。 但し、マスターテーブルの印刷フラグがYesとなっているものは、数量がいくつあっても受注テーブルは1レコード作成されます(数量合計で展開しない)。  受注テーブル   ID コード 数量   1  AAA   5   2  AAA   3   3  BBB  100  検品テーブル   ID コード 検品フラグ   1  AAA   Yes   2  AAA   Yes   3  AAA   Yes   4  AAA   Yes   5  AAA   Yes   6  AAA   Yes   7  AAA   No   8  AAA   Yes   9  BBB   Yes  マスターテーブル   ID コード 印刷フラグ   1  AAA   No   2  BBB   Yes こんな感じです。 そこで各テーブルをコードで紐付けてグループ化し、検品フラグYesで抽出した状態で以下の結果を表示出来るようにしたいところです。 コード 数量合計  AAA   7  BBB  100 要するに印刷フラグがYesのものは受注テーブルの数量合計を表示し、それ以外は検品された数を表示させたいと考えています。 あらかじめ受注テーブルでコードでグループ化し、数量の合計を算出するクエリ(※1)を作成し、そのクエリと検品テーブル、マスターテーブルを紐付けたらうまく表示出来ました。 ※数量合計はIIFで印刷フラグ=Yesの場合は※1の数量合計を、Yesではない場合は検品テーブルのレコードカウント数を表示。 しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。 ご教授お願い致します。

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

    従業員の労務管理をアクセスで行っています。 個人個人が社員コードを入力して自分の勤怠を処理しますが、1人だけ不具合がおきています。 このような抽出クエリで特定のデータに限って抽出しない場合、どんな原因が考えられるのでしょうか。対応策をご存知の方ヘルプミーです!! テーブル テキスト型でコード番号を登録 クエリ  コード番号を指定して抽出 コード番号は0001~1000といった四桁のコードを使用 『0029』コードのみ抽出が不可能 (1) 登録してあるデータのコードを直接コピーして抽出条件に貼り付けると『"0029』と頭側一方のみ『"』が付き抽出することができる。 (2) 次ににキーボードから『0029』と入力すると『"0029"』となり、抽出できない。 (3) キーボードから『"0029』と入力すると抽出できない。 なぜか??        

  • Access 選択クエリーの抽出条件

    Access2000を使っています。 選択クエリーの抽出条件にテーブルの値を設定することは可能でしょうか? たとえば、テーブルAに対して、抽出条件をテーブルBのデータでコード番号 ”B*”(コード番号にBのつくもの)を抽出したいのですが・・・。 よろしくお願いします。

  • クエリの抽出条件

    アクセス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レコードを抽出」をうまく出来る方法は無いでしょうか。 よろしくお願いします。

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

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Access 抽出漏れ行をみつけるクエリ

    図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。

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

    当方:XP アクセス2003 アクセスのテーブルで作ったデータを クエリを使って抽出する場合・・・ 1 2 3 という数字で判別しているデータがあり、 1だけを抽出、2だけを抽出ということはできるのですが、 1or2 2or3 というような抽出はできるのでしょうか? よろしくお願いします。

  • ACCESS 選択クエリでの抽出条件について

    在庫マスターと得意先マスターのテーブルを使用して 在庫マスターのデータを抽出条件により出力したいと思っています。 在庫マスターは区分コード1の倉庫コードと区分コード3の店舗コードと分かれており、 抽出条件は区分コード1の時は倉庫コード199と155は除きます。 区分コード2の時は得意先マスターの形態コードから"1"と"2"のものを抽出します。 デザインビューでクエリ作成するで選択クエリから抽出条件を入力してデータを出力できないのでしょうか。 色々と試していますがエラーが表示され出力できません。 例) If([ST_WHTYPE]="1",([dbo_STOCK].[ST_WHNO]) Not In ("199","155"), IIf([ST_WHTYPE]="3",[CU_SHOPTYPE]="1" Or [CU_SHOPTYPE]="2")) この場合は集計関数・・・・・含んでないクエリーを実行しましたと表示されます。 他には複雑すぎるため評価できませんとかエラーが表示されます。 選択クエリでの抽出条件ではできないのでしょうか。