こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

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

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

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

投稿日時 - 2002-08-29 12:03:24

QNo.346213

すぐに回答ほしいです

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

こんにちわ

再度、回答します

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

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

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



宜しくお願い致します

投稿日時 - 2002-08-30 13:54:35

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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

投稿日時 - 2002-08-30 05:33:27

ANo.2

こんにちわ

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

投稿日時 - 2002-08-29 13:01:09

補足

ありがとうございます。
クエリーとした場合、
テーブル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:13

ANo.1

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

投稿日時 - 2002-08-29 12:55:37

あなたにオススメの質問