• 締切済み

【Access演算】品目ごとの数量を合計

アウトプットは、品目の在庫数の推移を見れるようなイメージです。 品目 日付  数量  在庫   A    1/1   20   20 A    1/2 -5 15 A    1/5 +10 25 B    1/1 0 0 B    1/4 -3 -3 B    1/5 +5 2 こんな風に、品目ごとにグループ化し、日付順に数量を合計して、毎行”在庫”項目に結果を返したいです。 そもそもクエリで演算では不可能なのでしょうか。 それならVBAでも構いません。 試行錯誤していますが、うまくいきません。 ご教授願います。よろしくお願いいたします。

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

テーブルには在庫フィールドはないものとします。もしあれば以下のクエリの  AS 在庫 のところを、AS 在庫2 などに変更してください。テーブル名は実際に合わせて変更してください。 SELECT テーブル1.品目, テーブル1.日付, テーブル1.数量, (SELECT SUM(Temp.数量) FROM テーブル1 AS Temp WHERE (Temp.日付<=テーブル1.日付) AND (Temp.品目=テーブル1.品目)) AS 在庫 FROM テーブル1 ORDER BY テーブル1.品目, テーブル1.日付; 上記は一応レコードの並びを質問の通りに並べるために、    ORDER BY テーブル1.品目, テーブル1.日付  によって指定しています。ORDER BY テーブル1.品目, テーブル1.日付 をはずしても在庫の 算出はできます。 上記はサブクエリを使用していますが、DSumを使っても出来るかもしれませんが、 DSumはレコード数が多くなると重たくなるのでサブクエリを使用した方法を 提示しています。 さらにデータ量が多い場合は、テーブルに数量フィールドを設定し、VBAを 使ってテーブルに書き出す方法もあります。

すると、全ての回答が全文表示されます。

関連するQ&A