まずは「T_取込」テーブルを正規化されたテーブルに変換します。
正規形のテーブルは記のようになります。
T_会社別売上 (テーブル名は適当ですので実態にあったものに変更してください。)
ID | 会社ID | 商品ID | 個数 |
---|---|---|---|
1 | 1 | 1 | 2 |
3 | 1 | 2 | 1 |
4 | 1 | 3 | 2 |
6 | 1 | 4 | 1 |
7 | 2 | 1 | 1 |
上記のフィールドも持つ空のテーブルを作成しておきます。
ID はオートナンバー型の主キーにしておきます。
下記のSQLのクエリを作成します。
SELECT
会社マスター.会社ID,
商品マスター.商品ID,
Choose([商品ID],[商品1],[商品2],[商品3],[商品4]) AS 個数
FROM
T_取込 INNER JOIN 会社マスター ON T_取込.社名 = 会社マスター.社名, 商品マスター
ORDER BY
T_取込.取込ID, 会社マスター.会社ID, 商品マスター.商品ID;
これを保存してデータシートビューで希望のデータになっていることを確認したら、
追加クエリに変更して追加先を「T_会社別売上」テーブルにします。
この追加クエリを実行するとT_会社別売上に上記のデータ例のようにデータが追加されます。
下記のような数値型フィールドが一つのテーブルを作成します。
予想される最大個数までの連番を入力しておきます。
T_Num
Num | |
---|---|
1 | |
2 | |
3 | |
4 | |
5 |
下記のようなSQLのクエリを作成すればレポート出力用にデータになります。
SELECT
会社マスター.社名,
会社マスター.[〒],
会社マスター.住所1,
商品マスター.商品名
FROM
(T_会社別売上 INNER JOIN 会社マスター ON T_会社別売上.会社ID = 会社マスター.会社ID)
INNER JOIN 商品マスター ON T_会社別売上.商品ID = 商品マスター.商品ID
, T_Num
WHERE
T_Num.Num<=[個数]
ORDER BY
T_会社別売上.会社ID, T_会社別売上.商品ID, T_Num.Num;
これをレポートのレコードソースに設定すればいいでしょう。
通報 ...
ありがとうございます!
正規化されたテーブルを作るところからやってみます!