- ベストアンサー
Accessでのカウント方法
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
もし、入荷も出荷もない日は表示しなくていのであれば、次のSQL文で集計できます。 SELECT 日付, SUM(入荷) AS 入荷数, SUM(出荷) AS 出荷数 FROM (SELECT 入荷日 AS 日付, 1 AS 入荷, 0 AS 出荷 FROM 入出荷テーブル UNION ALL SELECT 出荷日 AS 日付, 0 AS 入荷, 1 AS 出荷 FROM 入出荷テーブル) GROUP BY 日付; しかし、全ての日付を出したいとなると少々やっかいです。 SQL文では、テーブルに登録されていない値(日付)を自動で作成するのことはできないからです。 どうしても全ての日付を出したいのであれば、事前に日付だけを登録した日付テーブルを作成しておく必要があります。 例えば、8月分だけの集計をしたいのであれば、次のような日付テーブルを作成しておきます。 日付 2009/08/01 2009/08/02 2009/08/03 ・・・・・ 2009/08/30 2009/08/31 作り方は、VBAを使ってテーブルを作成するか、Excelで日付データを作成してインポートしてください。 その後で、下記のSQL文を実行すれば、日付テーブルに登録した日付全てで集計できます。 SELECT 日付テーブル.日付, 入出荷.入荷数, 入出荷.出荷数 FROM 日付テーブル LEFT JOIN (SELECT 日付, SUM(入荷) AS 入荷数, SUM(出荷) AS 出荷数 FROM (SELECT 入荷日 AS 日付, 1 AS 入荷, 0 AS 出荷 FROM 入出荷テーブル UNION ALL SELECT 出荷日 AS 日付, 0 AS 入荷, 1 AS 出荷 FROM 入出荷テーブル) GROUP BY 日付) AS 入出荷 ON 日付テーブル.日付 = 入出荷.日付;
お礼
ありがとうございます。 もう少し、単純だと思っていました・・恥ずかしいです。 SQL文は難しいですよね~。でもおかげさまで何とか目的を果たせました。感謝しております。