• ベストアンサー

別々の性質のもつテーブルのクエリーとレポートについて

ACCESS2000において テーブルA  ID  氏名  口座   テーブルB  ID  振込み月  金額A テーブルC  ID  振込み月  開発費 テーブルD  ID  振込み月  金額B 上記のようなテーブルが存在するときに、 リンクまたはクエリーでそれぞれのテーブルの 内容をまとめて、レポートを出力させます。 このとき、それぞれのテーブルでの振込み月は 必ず毎月存在するとは限らないので、存在しない 月はデータがありません。 それぞれのテーブルのデータを集計し、各IDにおける その月の振込み月の金額の合計を算出します。 レポートにおいては、振込み月とそれぞれの金額と 金額の合計をレポート印刷します。 そのままのクエリーを考えると、それぞれのテーブルの データをもつIDのみ、クエリーのデータとなってしまう ので、その月のデータがない場合でも金額¥0として クエリーとしたいですが、どのようにすればいいでしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • oka123
  • ベストアンサー率31% (69/219)
回答No.4

こんにちわ 再度、回答します いろいろ方法はあると思うので 質問者殿で自由に試行してみると いい結果がでるとは思いますが いくつか、思いつく方法を書きます ******************************* 案-1 a-b a-c a-d でそれぞれ クエリ-を発生させて その3つのクエリ-をユニオンクエリ-で 1つのクエリ-にする そして次にクエリ-の集計行機能で id+月 で集約クエリ-にする 案-2 あらかじめテ-ブルを作成しておき (項目を定義できますから) そのテ-ブルを0件に削除してから(削除クエリ-) そこのテ-ブルへそれぞれの値を項目へ 追加書きこみする 宜しくお願い致します

その他の回答 (3)

noname#2685
noname#2685
回答No.3

クエリのデザイン表示で 「テーブルの ID が結ばれている線」 があるかと思います。 その「線」をマウスでクリックして選択し、 右クリックで「結合プロパティ」を表示させます。 そうすると表示されるダイアログで 「1:両方のテーブルの~」 「2:~」 「3:~」 となっているラジオボタンがあるかと思います。 いま、たぶん「1」になっていますので、 (理由は後で調べるとして) 「2」とか「3」とかいろいろ試してみて下さい。 お望みの結果が得られると思います。 詳しく調べるには、 「左結合」とか「LEFT JOIN」 を検索してみて下さい。 頑張って下さいね♪

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj04_1.htm,http://www.rfs.jp/sitebuilder/sql/04/03_4.html
  • oka123
  • ベストアンサー率31% (69/219)
回答No.2

こんにちわ 選択クエリーの結合プロパティを 例えば「aテーブルの全件」 とすれば、片方(aテーブル)にあれば 全件出てきます 問題はレコードが無いときにその数値項目が 0ではなくて、null値になることですが クエリーを作りnull値を0にすれば 解決できます

patak
質問者

補足

ありがとうございます。 クエリーとした場合、 テーブルBが ID 振込月 金額1 1  7月 2000 2  7月 3000 テーブルCが ID 振込月 開発費 1  7月 3000 2  8月 4000 3  7月 2000 テーブルDが ID 振込月 金額2 1  8月 2000 2  7月 3000 3  7月 2000 クエリー結果が ID 振込月 金額1 開発費 金額2 1  7月  2000   3000    0 1  8月     0    0   2000 2  7月  3000    0    0 2  8月    0     4000   0 3  7月  3000    2000    2000 の場合、クエリーを作成すると 金額1は表示できるが振込月が8月の ような場合のケースが表示できない ようです。 最終的には上記のケースになる場合は どうなのでしょうか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>それぞれのテーブルのデータをもつIDのみ、クエリーのデータとなってしまう・・ これはクエリのテーブル同士の結合が「両方のテーブルの結合フィールドが同じ行 だけを含める」になっているためで、結合プロパティを開き「テーブルAの全レコード とテーブルBの同じ結合フィールドのレコードだけを含める」に変更します。 他のテーブルC・Dも同様にテーブルAの全レコードと同じ結合フィールドのレコード を含める結合に変更すればデータがないIDも各テーブルを表示出来るようになります。

関連するQ&A