選択クエリでの売上集計方法について

このQ&Aのポイント
  • 売上テーブルのリレーションシップ設定によって、選択クエリでの売上の集計方法について問題が生じています。
  • 売上A種、売上B種、売上C種が必ずしも毎日の得意先の売上に含まれていないため、選択クエリで集計する場合に問題が発生します。
  • 入力の無い売上A種、売上B種、売上C種に対しては0で集計する方法が必要です。
回答を見る
  • ベストアンサー

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で、あるものはその合計を集計させるにはどのようにしたらよいでしょうか? 何卒、よろしくお願い申し上げます。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>A種、B種、C種すべてに入力がなければ拾ってくれません。 リレーションの結合が不明ですがこれは多分売上テーブルから売上A種テーブルなどへのリレーションの結合の仕方が原因と思いますが。 現在は「両方の結合フィールドが同じ行だけを含める」になっていると思います。 (売上A種テーブルの場合)リレーションの結合の仕方を結合プロパティで「売上テーブルの全レコードと売上A種テーブルの同じフィールドのレコードだけを含める」にすれば全て表示され集計できます。(B種・C種テーブルも同様に) 結合の仕方を変えれば選択クエリで全件のレコードを表示できますので試してみてください。

suika_no1
質問者

お礼

ありがとうございました。 上手く行きました。恥ずかしながら、この結合プロパティは今まで特に気にもしていませんでした。これを機会に勉強してみます。 早速のご回答、本当にありがとうございます。

関連するQ&A

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

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (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)

  • 集計結果を別テーブルに更新クエリで書き出したい。

    Access2000を使っています。 テーブルとフィールドの関係は次のようになっています。 (一部、Northwind.mdbを使っています。) 受注 ---------------------- 得意先コード 受注コード 受注明細 ---------------------- 受注コード 単価 数量 売上集計 ---------------------- 得意先コード 合計 受注明細テーブルの単価と数量を掛け合わせたものの合計を 売上集計テーブルの合計に書き出したいと思います。 次の選択クエリの合計の値を売上集計テーブルの取引先コード の一致する場所に書き出したいのです。 SELECT 受注.得意先コード, Sum([単価]*[数量]) AS 合計 FROM 受注 INNER JOIN 受注明細 ON 受注.受注コード = 受注明細.受注コード GROUP BY 受注.得意先コード; 売上集計テーブルと受注テーブルの得意先コードは同じものが 存在します。 よろしくお願いします。

  • アクセス 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教えて下さい。

    こんにちは。 ACCESSで今データーベース作ってます。 初心者なのですが、 売上管理の為 テーブルを作成 ID 数量 単価 金額 を作成し、入力(フォーム)で数量と単価をいれると自動計算できるようにしたいのです。 今までは、合計をクエリーで作成してました。計算は出来るのですが、テーブルで合計が入力されないし、その金額を次利用しようとしても、使えません。 数量*単価⇒の値を金額へ保存していきたいのですが・・。 宜しくお願いします。

  • Access レポートの集計 

    レポートで売上の合計を集計したのですが、特定の品目だけ 合計値に含めないようにするにはDsum関数で良いのでしょうか? レポート 品目_売上 a_100 b_200 d_300 e_400 計1000 c_250 このようなレポート形式にしたいのです。

  • SQLでの集計について

    こんにちわ。以下のようなテーブルから条件に見合う合計を出したいと思いSQLを書いてみたのですが、 思った結果になりません。 テーブルA ID1 得意先Cd 営業所Cd 日付 1  001    001  2005/09/01 2  001    002  2005/09/01 3  001    001  2005/09/03 テーブルB ID2 ID1 部署 数量 金額 1  1  01  1  1000 2  1  01  1  1000 3  1  02  1  1000 4  2  01  1  1000 5  2  01  1  1000 6  3  01  1  1000 7  3  01  1  1000 8  3  02  1  1000 [抽出結果] 得意先Cd 営業所Cd 日付  部署 数量(Sum) 金額(Sum) 001    001  2005/09/01 01   2   2000 001    001  2005/09/01 02   1   1000 001    001  2005/09/03 01   2   2000 001    001  2005/09/03 02   1   1000 001    002  2005/09/01 01   2   2000 [SQL] select 得意先Cd,営業所Cd,日付,部署,SUM(数量) As '数量計',SUM(金額) As '金額計' from テーブルA AA Inner join テーブルB BB ON (AA.ID1 = BB.ID1) group by 得意先Cd,営業所Cd,日付,部署,数量,金額 order by 得意先Cd,営業所Cd,日付,部署 このSQLを実行すると、日付、部署共に同じ場合でも数量・金額が合計値となりません。 得意先Cd 営業所Cd 日付  部署 数量 金額 001    001  2005/09/01 01 1  1000 001    001  2005/09/01 01 1  1000 どのように変更を加えれば、上記の「抽出結果」にできるのでしょうか? よろしくお願いいたします。

  • 各グループごとの集計結果をクエリで求めたい

    Access2003のクエリについてです。 (1)のようなテーブルに対してして(2)のような結果を出したいのですが、集計結果の全レコードに対して、各該当するグループごとの集計結果がうまく計算できません。 [都道府県別合計],[商品ID別合計],[月度別合計]は一つのクエリの中で求められるものなのか、サブクエリで先に求めるものかどういう方法をとるのがいいのでしょうか? (1) 都道府県, 商品ID, 日付, 数量, 単価 (2) 都道府県, 商品ID, 月度:Format(日付,"yyyy/mm"), [都道府県別合計], [商品ID別合計], [月度別合計] (グループ化), (グループ化), (グループ化)

  • アクセスのクエリについて(前当期比較させたい)

    現在、アクセス2010を勉強中の超初心者です。 アクセスを用いて、前期と当期の商品売上数量比較表(得意先ごとの)を作成できないか考えております。  ■さっそくですが、以下の4つのテーブルがあったと仮定します。 テーブル(1)(商品マスター)           テーブル(2)(得意先マスター) 品コード | 品名                  店コード |  店名   1    | ○○                       A  |  あか   2    | ××                       B  |  いき   3    | △△                       C  |  うす テーブル(3)(前期売上データ)          テーブル(4)(当期売上データ) 店コード | 品コード | 売上数量         店コード | 品コード | 売上数量  A     |   1    |  10               A      |   3     |  20     A     |    3     |  15             A      |    4     |  25     B     |    1     |  17              B     |    2    |  27     :     |    :    |  :               :     |    :     |  :     ■以下のようなデータ抽出できないかを検討しています。 店コード | 品コード | 前期売上数量 | 当期売上数量   A    |    1     |     10       |     0   A    |    3      |     15       |     20   A    |   4      |     0       |     25  ◆自身で検討してみましたが、「前期に売上実績があるが、当期に売上実績がないケース」、及び「その逆のケース」についてうまく抽出できません。(上記例で言いますと、A店に対する売上で品コード1 と 品コード3 の商品売上数量比較ができませんでした。)  解決方法わかる方、ご教授のほどよろしくお願い致します。

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • 時間により単価が変わるログ集計について

    MySQL5で、下記の売上単価 A と売上回数 B より、 id毎に売上金額 C を算出する事は可能でしょうか? ■売上単価 A id|daytime|money 1 |2007/4/1 12:00 |100円 1 |2007/4/1 12:29 |1円 ■売上回数 B id|daytime|money 1 |2007/4/1 12:15 |100回 1 |2007/4/1 12:30 |1回 ■売上金額 C id|money 1 |2007/4/1|10001円 AとBで異なる会社の為、 仕方なくこのようなテーブル構成になってしまいます(><)

    • ベストアンサー
    • MySQL

専門家に質問してみよう