プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

例えば
日付  数量 金額
2004/01/01 100 10000
2004/01/10 200 20000
2004/02/01 300 30000
2004/02/10 400 40000

というテーブル1があって
旬別に集計を行い、テーブル2へ
2004/01/01 300 30000
2004/02/01 700 70000

と出力したいのです。

この場合、クエリ等で一発でデータを出力する方法はありますでしょうか?
VBAでwhere句を修正しながら「旬ごと集計し出力する」というループ処理しかないでしょうか?

よろしくご教授願います。

A 回答 (4件)

集計クエリーを作成します。


第一フィールド は 日付から年月を
年月:format([日付]."yyyy/mm") グループ 昇順
第二フィールド は 旬 ある期間 
 1から10までを 仮に1 
 11から20までを 仮に2
 21から31までを 仮に3として設定します
旬:switch(day([日付])<=10,1,day([日付])<=20,2,day([日付])<=31,3) グループ 昇順 
第三フィールド は 数量合計
数量合計:数量  合計
第四フィールド は 金額合計
金額合計:金額 合計
でクエリーを作られたらいかがでしょうか
    • good
    • 0

旬は通常10日のことだと思いますが、31日をどこに入れるという問題があります。

31日を21日に参入するのなら、集計のキーを
DateSerial(Year([テーブル1]![日付]),Month([テーブル1]![日付]),IIf(Day([テーブル1]![日付])>=21,21,IIf(Day([テーブル1]![日付])>=11,11,1)))
にしてやれば可能だと思います。
    • good
    • 0

月ごとに集計し日付の先頭の日付で出力するなら下記のクエリで一括でテーブル2へ出力できます。



INSERT INTO テーブル2 ( 日付, 数量, 金額 )
SELECT DISTINCTROW First([テーブル1].日付) AS 日付の先頭, Sum([テーブル1].数量) AS [数量 の 合計], Sum([テーブル1].金額) AS [金額 の 合計]
FROM [テーブル1]
GROUP BY Format$([テーブル1].日付,'mmmm yyyy'), Year([テーブル1].日付)*12+DatePart('m',[テーブル1].日付)-1;
    • good
    • 0

> ACCESSで旬別集計



旬とは?
月ごとということでしょうか?

それならば、

Format([日付],"yyyy/mm") & "/01"
というフィールドをクエリで作成して、そのフィールドをグループ化。
数量・金額フィールドを、それぞれ合計とすればいいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!