|
ユニオンクエリは、テーブルを縦にくっつけるだけですから、
出荷品名がりんごであるレコードは、月間出荷抽出テーブルに2レコード、
売上品名がりんごであるレコードは、月間売上テーブルに1レコードあるとすると、
両テーブルのユニオンクエリにおいて出荷品名がりんごであるレコードは、
2+1=3レコードとなります。
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1001 りんご 2012/10/10 7 618000
>1001 2012/10/04 りんご 2
>1001 2012/10/10 りんご 5
のようになるのは、必然です。
得たい結果をクエリで得るのは、なかなか困難だと思います。
得たい結果である
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1001 2012/10/04 りんご 2 2012/10/10 7 618000
というレコードは、両テーブルを内部結合させたものです。
他方、
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1005 ライチ 2012/10/31 1 87100
というレコードは、両テーブルを右外部結合させたものです。
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1007 2012/10/08 さくらんぼ 2
というレコードは、両テーブルを左外部結合させたものです。
問題なのは、このレコードです。
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1001 2012/10/10 りんご 5
両テーブルを結合させると、内部結合でも、左外部結合でも、右外部結合でも、
製番1001は、
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1001 2012/10/04 りんご 2 2012/10/10 7 618000
>1001 2012/10/10 りんご 5 2012/10/10 7 618000
となります。
したがって、
>製番 出荷日 出荷品名 出荷数 売上日 売上数 売上金額
>1001 2012/10/10 りんご 5
のレコードは、両テーブルを結合させることなく、
月間出荷抽出テーブルだけから引っ張ってきたレコードです。
つまり、得たい結果は、テーブルの結合の仕方が混在したものなのです。
結局、クエリだけでやるなら、
左外部結合のクエリ、
右外部結合のクエリ、
月間出荷抽出テーブルだけから引っ張ってくるクエリ、
月間売上抽出テーブルだけから引っ張ってくるクエリ、
を作り、それらによるユニオンクエリを作ります。
その際、うまく抽出条件を設定し、重複しないようにする必要があります。
ただ、この抽出条件の設定は、集計クエリやサブクエリを駆使する必要がありそうであり、
かなり面倒くさそうです。
ちなみ、レポートに表示させるのであれば、
レコードソースを、
両テーブルを左外部結合したクエリと、右外部結合したクエリとによる
ユニオンクエリとした上で、
レポートの「重複データ非表示」プロパティを「はい」に設定すれば、
御希望のことは可能ではないかと思います。
|
|