Accessでの集計用クエリの作成

このQ&Aのポイント
  • Accessを使って業務担当者の集計をするためのクエリの作成方法について教えてください。
  • 各担当者が単独で業務を行なった回数、複数担当での主担当者として行なった回数、副担当者として行なった回数を集計する方法についても教えてください。
  • クエリの作成方法や集計結果の取得方法をわかりやすく教えていただけると助かります。
回答を見る
  • ベストアンサー

Accessでの集計用クエリの作成

Accessを使って以下のように業務担当者の集計をしたいのですが、どのように クエリを作成していけばいいのか、よくわかりません。うまい解決がおわかり の方、ご教授いただけないでしょうか? 個々の業務は一人か二人の担当者で実施します。業務ごとに主担当者IDと副担 当者IDが記録されていますが、副担当者はつかない場合があります。つまり、 次のような感じです。担当者IDは実際は数字で、別の担当者名簿にリンクして います。現在はID=1を担当なしにしていますが、そのへんはまだいじれます。 [業務担当] 業務 主 副 1  a b 2  a 3  c 4  c b 5  b a 6  a c 7  a b 8  c ここで、各担当者が、単独で業務を行なった回数、複数担当での主担当者とし て行なった回数、副担当者として行なった回数、を集計して以下のような結果 を得たいのです。 担当者 単独 主 副 a   1  3 1 b   0  1 3 c   2  1 1 最初は、単独と複数で別々のクエリで抜き出してから、さらに集計のクエリに かけるのかなとか考えたのですが、これだけのことにそんなに複雑な処理がい るとも思えません。何かすっきりした解決がありそうなんですが。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

SELECT t.担当者, (select count(*) from 業務担当 as g where g.主=t.担当者 and g.副 is null) AS 単独, (select count(*) from 業務担当 as g where g.主=t.担当者 and g.副 is not null) AS 主, (select count(*) from 業務担当 as g where g.副=t.担当者) AS 副 FROM 担当者 AS t; こんなかんじでしょうか?

punchan_jp
質問者

お礼

適切な回答ありがとうございます。またお礼が遅くなって申し訳ありません。 しばらく手元で試せる環境を作れなかったもので。 回答をいただいた結果、うまく集計のクエリを作成することができました。 やはりSQLをちゃんと勉強してこれくらい書けるようにならないといけないですね。 で、本当に申し訳ないのですが、もう一点お尋ねしていいでしょうか。 [業務担当]の表には、実際にはその業務日も含まれています。 業務日の範囲を限定して(例えばyyyy/mm/ddからyyyy/mm/dd)、 同じ集計をするには、この集計クエリで、where の中身をいじればいい というのはわかるのですが、それだと3箇所に同じ記述が必要になりますよね? まず、[業務担当]の表の中から、該当日だけを抽出して、それを元に集計するには、 一つのSQLでどう書けばいいのでしょう? あつかましいお願いですが、よろしくお願いいたします。

その他の回答 (1)

回答No.2

追加の質問に対する答えですが、わたしの知る限りでは、 where句に3回同じ記述をするしかないと思います。 お役に立てず申し訳ありません。

punchan_jp
質問者

お礼

そうでしたか。しかたないですね。 それより、役に立たないなんてとんでもない。 非常に助かりました。ありがとうございます。 今後もよろしくお願いします。

関連するQ&A

  • access クエリで集計した数値を別クエリで使いたい

    access2003で2000ファイル形式で以下のものを作っています。 テーブル「A」(フィールドは登録番号(主キー)、 書名) 「B」(登録番号(主キー)、 書名) がある。Aの「登録番号の最大値」(100とする)をクエリ(クエリ名「集計クエリ」)で集計して得た。 テーブルBの登録番号(1~30とする)を更新クエリで(1+100 ~ 30+100)に更新したい。そこでデザインビューで登録番号フィールド(テーブルB)の「レコードの更新」欄にビルダーで「[B]![登録番号]+[集計クエリ]![登録番号の最大値]」と入力して実行したら 実行できなかった。(仕方ないので「[B]![登録番号]+100」として実行したら更新できた。)今後もあるので「集計クエリ」で得た値を直接呼んで、更新クエリを実行したいのだが・・・。 わかりにくい質問で恐縮です。ご理解頂けたならば、ご教授ください。

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • Access2003 クロス集計クエリでの合計

    ☆以下のようなテーブルで、フィールド[ID]~[C]があり、文字および数字のデータが混在しています。   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== (テーブル(1)) [ID]  [A]      [B]    [C]     1    111     英語    10    2    222     英語    20    3    333     数学    30    4    111     国語    40   5    222     数学    50    6    333     国語    60    7    222     国語    70   8    333     英語    80     9    111     数学    90     =========================================== [課題] クロス集計クエリを作成する (1) フィールド[A]を行見出しに設定、    フィールド[B]を列見出しに設定、    フィールド[C]を集計する項目に設定する。   (2) フィールド[C]の値を列ごとに平均を計算し、    行ごとに合計を計算する。   ※ 列と行で、それぞれ集計した値を表示する   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== [クロス集計結果]     合計  英語  国語  数学     111  140   10    40    90        222  140   20    70    50     333  170   80    60    30  --------------- 平均  150   36     56   56 ===========================================   ↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑    上記のようなクロス集計クエリの結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • アクセス クエリ・集計・計算方法について

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (1)年月: Format([日付],"yyyy/mm")(集計:グループ化) (2)品名(集計:グループ化) (3)品名のカウント(集計機能:カウント) (4)単価(集計:グループ化) (5)金額: [単価]*[品名のカウント](集計:グループ化) このような形でクエリを実行していますが、すべての注文が1つだけなら問題ないのですが、実際には品名には数量が掛けられている場合もあり、現在設定しているクエリ設定では正しい数量の合計と金額の合計を出すことができません。どうか集計方法をご教授いただけないでしょうか。よろしくお願いします。 ■現在のテーブルの設計とリレーションを明記します。 【A】顧客テーブル (1)顧客ID (2)発注コード (3)氏名 【B】商品テーブル (1)商品ID (2)品名 (3)単価 【C】注文テーブル (1)注文ID (2)日付 (3)顧客ID 【D】注文明細テーブル (1)注文明細ID (2)注文ID (3)商品ID (4)数量 リレーション 【A】(1)-【C】(3) 【B】(1)-【D】(3) 【C】(1)-【D】(2)

  • アクセス 2つのクエリーの集計について

    A: 選択クエリ|薬品コード|名称|数量|        | 001  |A  |1  | | 002  |B  |2  | | 003  |C  |3  | B: 選択クエリ|薬品コード|名称|数量|       | 001  |A  |1  | | 003  |C  |2  | | 004  |D  |3  | という2つのクエリから、 |     A   |    B |合計| |薬品コード|名称|数量|薬品コード|名称|数量| | | 001  |A  |1  | 001   |A |1  |2  |  | 002  |B  |2  | |  |  |2 |  | 003  |C  |3  | 003   |C |2  |5  |  |     |  |  | 004   |D  |3  |3  | というように、2つのクエリの結果も表示し、合計も表示 できるようなクエリの作り方を教えてください。 AとBの薬品コードを結合しても、両方の薬品コードを表示 できるような結合プロバディはないようにおもうのですが。 テーブルにしてからクエリにしないといけないのか、 そのあたりもわかりませんが教えてください。 よろしくお願いします。  質問内容書くときはうまくいっているのに、投稿だと線がずれているんですが、わかりますでしょうか?  

  • ACCESS 選択クエリの集計について

    そもそもテーブルの作り方が悪かったと言えるのですが、是非お知恵をお借りしたく投稿しました。 売上テーブル  売上ID 日付 得意先 売上A種テーブル 売上A種ID 売上IDNo 品目 数量 単価 合計  売上B種テーブル 売上B種ID 売上IDNo 品目 数量 単価 合計  売上C種テーブル 売上C種ID 売上IDNo 品目 数量 単価 合計  売上テーブルにメインの情報を入力し、売上A種テーブル、売上B種テーブル、売上C種テーブルに詳細情報を入力できるように売上IDと売上IDNoでリレーションシップを作成しました。 選択クエリでその日の各種の売上を集計したいのですが、必ずその日の得意先の売上の中に売上A種、売上B種、売上C種が含まれているわけではないので、選択クエリで 売上ID-グループ化 日付-グループ化 得意先-グループ化 売上A種合計-合計 売上B種合計-合計 売上C種合計-合計 とした場合、A種、B種、C種すべてに入力がなければ拾ってくれません。 入力の無いもの(売上IDNoのないもの)は0で、あるものはその合計を集計させるにはどのようにしたらよいでしょうか? 何卒、よろしくお願い申し上げます。

  • Accessフォームにクロス集計クエリを表示させるとき

    Accessフォームにクロス集計クエリを表示させようとしています。 クロス集計の横軸の項目数が増減するようなデータを扱っているのですが、 クエリをフォームに貼り付けてフォームを保存した後、クロス集計の横軸の項目数が増減しても、フォーム上の横軸の数は増減してくれません。 もう少し具体的に書くと、 クロス集計クエリは、縦軸に日付、横軸に社員を設定し、日付別の社員のアクセス回数カウントを表示するもので、社員は新しく入ってきたり、辞めていったりするため増減します。 フォーム上に集計クエリを貼り付けて、次のような表ができました。 ----- 日付 アクセス計 社員A 社員B ○日 3     1   2 △日 4     1   3 ----- □日に、StaffCが増えたので、次の様にしたいのですが、StaffCの列が表示されません。 ----- 日付 アクセス計 社員A 社員B 社員C ○日 3     1   2 △日 4     1   3 □日 5     1   2   2 ----- どのような解決方法がありますか? 質問が分かりづらいと思いますが、宜しくお願いします。表は等幅フォントで見ていただければと思います。

  • Accessのクエリで月集計を一括集計したい。

    こんにちは。 Accessの基本操作がわかる程度の初心者です。 毎日の売上データが下記のようにあるとして、月毎の合計を一括で集計する方法はないでしょうか? 月別、店別、商品別、担当者別、売上数計、売上金額計 現在は、クエリの売上日にパラメータを入れて、 「2012/5/1」「2012/5/31」と1月分毎に入力し、集計したものを エクセルにきりばりしていますが、とても大変で困っています。 2012/5/1 大阪店 商品A 担当者A 売上数 売上金額 2012/5/3 東京店 商品A 担当者B 売上数 売上金額 2012/5/3 大阪店 商品B 担当者C 売上数 売上金額 2012/6/1 大阪店 商品A 担当者A 売上数 売上金額 2012/6/1 大阪店 商品B 担当者C 売上数 売上金額 2012/6/3 東京店 商品A 担当者D 売上数 売上金額 2012/7/3 大阪店 商品B 担当者B 売上数 売上金額 よろしくおねがいいたします。 ver. : 2007 os : WindowsXP

  • クエリでの集計について

    クエリを使って集計する際に以下のような問題が生じるのですが 何か良い方法はありませんか 注文日時 金額 ―――――――― 02/06/20 \100 02/06/20 \200 02/06/22 \300 02/06/22 \400 ――――――――  ↓クエリで集計する 注文日時 金額 ―――――――― 02/06/20 \300   02/06/21のデータがない 02/06/22 \700 ―――――――― 02/06/21 \0 を自動的に追加するようにしたい この問題を何とか解決したいと思っているのですが 良い方法はありませんか 宜しくお願いします

  • Accessでテキストフィールドの集計

    ちょっと特殊な集計をしたいのですが テーブルはID(数値)と 記号(テキスト)の2つから構成されています。 ID   記号 1   A1,B2 2   A2 3   A1,A3 4   B1 5   A3,B2,C1 このようにデータが入っている場合 以下のように集計をするにはどうしたらよいでしょうか? 記号  カウント A1   2 A2   1 A3   2 B1   1 B2   2 C1   1