みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ファイルメーカー12を使っています.
テーブルAで100人分(100レコード)のテスト得点のデータベースをつくり,集計フィールド(平均)を作りました.
テーブルBもに,この集計フィールドを表示したいのですがうまくいかず,なぜか個人の得点が表示されています.
ちなみにテーブルA,BはID番号という名の数字フィールドでリレーションを組んでいます.
どなたかご教授お願いします.
リレーションを張って、計算フィールドにされれば如何でしょう。
Offline
リレーションを張って、計算フィールドにされれば如何でしょう。
返信ありがとうございます.手順として
1.テーブルAとテーブルBをリレーションそれぞれIDフィールドを作りでつないみました
2.テーブルAの集計フィールド(仮にフィールドAとします)をつくりました.
3.テーブルBにフィールドBをつくり,それを計算フィールドとしました.計算式は「 = テーブルA;フィールドA 」です.
以上をやってみましたがフィールドAには集計結果が出ているのにフィールドBで表示される数値は集計ではなく個人の数値が出てしまいます・・・
IDフィールドは個人ID、それともテストID、どちらですか?
Aで100レコードの平均値の集計フィールドがあるのなら
それには100レコードとも同じ平均値が出ているのですよね。
個人の数値とは何ですか。
Offline
IDフィールドは個人ID、それともテストID、どちらですか?
Aで100レコードの平均値の集計フィールドがあるのなら
それには100レコードとも同じ平均値が出ているのですよね。
個人の数値とは何ですか。
返信ありがとうございます.
IDは個人が識別できるものとして使用している数字フィールドです.これでテーブルAとBをつないでいます.
1.まずテーブルAに,個人のテスト得点フィールドを作りました.一人につき1レコード表示するようにしています.一人(1レコード)につき1 各々の得点結果(さきほほど"個人の数値"と表現したものです)が表示されています.これが100人分(100レコード)あります.
2.同じくテーブルAに集計フィールドをつくりました.この集計フィールドは100人分の平均を示すものです.
3.テーブルBを作り,そこにもテーブルAの集計フィールドを表示したいのですが,集計フィールドをそのままコピーしたり,計算フィールドに 変えても数字は,個人の得点結果(個人の数値)が表示されます.テーブルAではちゃんと平均で出ているのに・・
説明が分かりにくくて済みません.よろしくお願いいたします
それでしたらBにAの関連フィールドA::平均値を置けば出るはず。
計算フィールドの場合は=A::平均値とか
ID--×--IDでリレーションして=Average(A::得点)とかでも
でも今後Aには1回のテストだけあるわけではないでしょうから、
テストIDでリレーションして
=Average(A2::得点) の方がいいかも。
Offline
それでしたらBにAの関連フィールドA::平均値を置けば出るはず。
計算フィールドの場合は=A::平均値とか
ID--×--IDでリレーションして=Average(A::得点)とかでもでも今後Aには1回のテストだけあるわけではないでしょうから、
テストIDでリレーションして
=Average(A2::得点) の方がいいかも。
たびたび返信ありがとうございます.こちらの返信が遅れて申し訳ございません.
関連フィールドとして
1.テーブルBにフィールドを作りそこに「テーブルA::平均値」をおいたのですが,表示は個人の得点でした.
2.次に計算フィールドにしてみて「=テーブルA::平均値」としてみたのですが,これも表示は個人の得点でした.
3.ID--X--IDでリレーションを組んで「=Average(テーブルA::得点)」でも同じ結果でした.
最後のテストIDというのが少しわからなくてまだ試せていません.
テストIDでリレーションというのは得点フィールドでリレーションをくむということでしょうか?
あとAverage(A2::得点)のA2というのはテーブルAこのことでいいのでしょうか?
何度もすみません.
1回のテストの100人分の得点と、その全体の平均点があるのですよね。
Aの平均点フィールドは100レコード全部が正しい同じ値になっていますか?
集計フィールドは対象レコードの集計を表示するので、Aでは100レコード全部
を対象レコードとしておく必要がありますよ。
Offline
まず、
現在の全レコードの集計だけを考えましょう。
リレーションを
テーブルB::ID X テーブルA::ID
↑
X =デカルト積の照合です
テーブルBで計算フィールドを作り、その計算式
Average ( テーブルA::得点 )
↑
このテーブル名は、上記のリレーションのリレーションシップでのテーブル名です
これでテーブルBでこのフィールドの値を確認してください。
ここでは集計フィールドは不要で、でる余地がありません。
Offline
旅人さん,チポさん,本当にありがとうございます.
恥ずかしながらリレーションが間違っていました.リレーションの知識がなく「=」の演算子でつないでいました.チポさんの×デカルトの照合で気づき,そこで「×」に変えました.あとは旅人さんの言うとおりの設定で問題なく表示されました.
本当に基本的なところで躓いてて申し訳ありません.非常に助かりました.
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 524.55 KiB (Peak: 545.09 KiB) ]