ACCESS2000総合相談所

このエントリーをはてなブックマークに追加
296名無しさん@そうだ選挙にいこう
>>294
商品マスタが無くて、とにかく売上データだけで何とかしたいということを
前提に書きます。

クエリを3つ作ればよいと思います。

<クエリ1>
 集計クエリにて売上データ内の全商品名を抽出する。
<クエリ2>
 集計クエリにて5月の売上データを集計する。
<クエリ3>
 クエリ1の全レコードとクエリ2を結合する。(実行用のクエリ)

参考に各クエリのSQL文を載せます。
(クエリデザインでSQLビューに張り付ければ再現できます)

<クエリ1>
SELECT テーブルA.商品名
FROM テーブルA
GROUP BY テーブルA.商品名;

<クエリ2>
SELECT テーブルA.商品名, Count(テーブルA.商品名) AS 商品名のカウント
FROM テーブルA
GROUP BY テーブルA.商品名, テーブルA.月
HAVING (((テーブルA.月)=5));

<クエリ3>
SELECT クエリ1.商品名, IIf(IsNull([商品名のカウント]),0,[商品名のカウント]) AS 件数
FROM クエリ1 LEFT JOIN クエリ2 ON クエリ1.商品名 = クエリ2.商品名
ORDER BY クエリ1.商品名;

次に、
>最終的にはユーザーから任意の月を入力させてその月の集計結果のみを
の件ですが、クエリ実行(又はレポート印刷等)のためのフォームを
作成すればと思います。

 ・フォームのテキストボックスに対象月を入力させる。
 ・クエリ2はフォームから対象月を取得して抽出条件とする。

尚、データ件数が多い場合、テーブルAの商品名を重複インデックスに設定すれば
処理スピードが向上します。