プロが教えるわが家の防犯対策術!

ACCESS2000において
テーブルA
 ID
 氏名
 口座
 
テーブルB
 ID
 振込み月
 金額A

テーブルC
 ID
 振込み月
 開発費

テーブルD
 ID
 振込み月
 金額B

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

A 回答 (4件)

こんにちわ



再度、回答します

いろいろ方法はあると思うので
質問者殿で自由に試行してみると
いい結果がでるとは思いますが
いくつか、思いつく方法を書きます

*******************************
案-1
a-b a-c a-d でそれぞれ
クエリ-を発生させて
その3つのクエリ-をユニオンクエリ-で
1つのクエリ-にする
そして次にクエリ-の集計行機能で
id+月 で集約クエリ-にする

案-2
あらかじめテ-ブルを作成しておき
(項目を定義できますから)
そのテ-ブルを0件に削除してから(削除クエリ-)
そこのテ-ブルへそれぞれの値を項目へ
追加書きこみする



宜しくお願い致します
    • good
    • 0

クエリのデザイン表示で


「テーブルの ID が結ばれている線」
があるかと思います。

その「線」をマウスでクリックして選択し、
右クリックで「結合プロパティ」を表示させます。

そうすると表示されるダイアログで
「1:両方のテーブルの~」
「2:~」
「3:~」
となっているラジオボタンがあるかと思います。
いま、たぶん「1」になっていますので、
(理由は後で調べるとして)
「2」とか「3」とかいろいろ試してみて下さい。
お望みの結果が得られると思います。

詳しく調べるには、
「左結合」とか「LEFT JOIN」
を検索してみて下さい。

頑張って下さいね♪

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
    • good
    • 0

こんにちわ



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

この回答への補足

ありがとうございます。
クエリーとした場合、
テーブル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月の
ような場合のケースが表示できない
ようです。
最終的には上記のケースになる場合は
どうなのでしょうか?

補足日時:2002/08/30 07:01
    • good
    • 0

>それぞれのテーブルのデータをもつIDのみ、クエリーのデータとなってしまう・・


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!