お世話になります
MT_商品 (商品ID,ほか)
T_生産 (ID,商品ID,生産量,生産日,ほか)
このようなテーブルがあり
商品ID | 2020年01月 | 2020年02月 | … | 2020年01月 |
---|---|---|---|---|
001 | 200 | 200 | … | 300 |
002 | 100 | 0 | … | 100 |
003 | 0 | 0 | … | 0 |
のような、月ごとの生産量を製品ごとにクロス集計クエリを作ることが目標です。
列数は、閲覧用のフォームから動的に現在から1年前までとか、全データ閲覧など選べるようにしたいです。
Format([生産日],"yyyy\年mm\月")
でまとめて、クロス集計するところまでできました。
生産量のNull値も0に変換できます。
現在わからないところは、
その期間内に生産のないMT_商品ID中の全商品を商品ID行に表示する方法です。
外部結合では解決できないようなので、困っております。
上の表の商品ID003のような表示をするにはどうしたらよいのでしょうか
また、かなり可能性が低いですが、生産が止まった月があった場合、列も表示されません。
これは対処できるのでしょうか?
これに対応するには、出力したいすべての年月を格納するテーブルが必要になりますね。
下記のようなテーブルを作成してください。
テーブル名 MT_年月
年月
2020年01月
2020年02月
2020年03月
2020年04月
一つのクエリでは難しいので、複数のクエリを組み合わせて目的に出力になるようにしていきます。
Q_商品_年月
このクエリですべての商品IDと年月の組み合わせが出力できます。
Q_商品年月別計
このクエリで、商品別年月別の生産量の合計が出力できます。
上記の2つのクエリから下記のようなクロス集計クエリを作成します。
CQ_商品年月別
これでご希望の結果になると思います。
ありがとうございました。
ご回答をもとに組み立てることができました。
MT_年月を前もって作成しておくのは、長期運用しにくいので、
自力で解決策を考えてみます。
(困ったら、また質問させていただきます