- 締切済み
アクセスの関数で質問です。
お世話になります。 アクセスの超初心者です。 顧客リストのテーブルがあります。 売上伝票フォームで顧客名と売上金を入力します。 ある一定期間で売上げで 顧客名 売上金 A社 ¥200 B社 ¥0 C社 ¥400 D社 ¥0 このようなクエリを作成するにはどうしたらよいのでしょうか? 売上げのある顧客の抽出は出来るのですが、売上げのない顧客の 売上げを「¥0」として反映させる方法がわかりません。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kurodai2
- ベストアンサー率38% (77/202)
<顧客リスト>テーブル 顧客ID 顧客名 1 A社 2 B社 3 C社 4 D社 <売上データ>テーブル ID 顧客ID 売上金 1 1 \1,000 2 3 \2,000 3 1 \3,000 4 3 \4,000 クエリ SELECT 顧客リスト.顧客ID, First(顧客リスト.顧客名) AS 顧客名の先頭, Sum(売上データ.売上金) AS 売上金の合計 FROM 顧客リスト LEFT JOIN 売上データ ON 顧客リスト.顧客ID = 売上データ.顧客ID GROUP BY 顧客リスト.顧客ID; クエリの結果 顧客ID 顧客名の先頭 売上金の合計 1 A社 \4,000 2 B社 3 C社 \6,000 4 D社 単純にテーブルを結合して、集計した場合は、データが無い顧客は ¥0ではく NULLになります。 どうしても、¥0にしたければ・・ 1つのクエリではなく、先ず売上の無い顧客もリストUPするクエリを作成し そのクエリを元に、集計するしかないですね。 <クエリ>名前:Q_売上リスト SELECT 顧客ID,顧客名, 0 AS 金額 FROM 顧客リスト; UNION ALL SELECT 顧客ID,"",売上金 from 売上データ; Q_売上リストクエリの結果 顧客ID 顧客名 金額 1 A社 \0 2 B社 \0 3 C社 \0 4 D社 \0 1 \1,000 3 \2,000 1 \3,000 3 \4,000 このクエリを元に、クエリを作成します。 クエリ SELECT Q_売上リスト.顧客ID, Max(Q_売上リスト.顧客名) AS 顧客名, Sum(Q_売上リスト.金額) AS 売上金額 FROM Q_売上リスト GROUP BY Q_売上リスト.顧客ID; クエリの結果 顧客ID 顧客名 売上金額 1 A社 \4,000 2 B社 \0 3 C社 \6,000 4 D社 \0 参考にしてください。
- Dxak
- ベストアンサー率34% (510/1465)
> 売上げのある顧客の抽出は出来るのですが、売上げのない顧客の > 売上げを「¥0」として反映させる方法がわかりません。 売上げのない顧客 → データが無い(顧客として存在しない) と、言う事で・・・「¥0」を作成するなら、集計する部分と、顧客名をリスト化する部分を別物にすれば、簡単にできると思いますが・・・ 上記、質問されている内容からは、この程度の回答が限界かな? もう少し詳しくなら・・・データサンプルあたり、作成して質問してみてね