みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ある月の売上合計に対して、粗利をだすときの方法について質問です
売上テーブルに、自己リレーションや集計フィールドで売上区分または取引先、月ごとの集計をするフィールドをつくり、
さらに粗利フィールドをつくる
年月と取引先などで
仕入(や経費)テーブルの対応するもの(こちらも売上区分など、どの売上から引くか、を特定できるフィールドを用意する)と
足し引きする、という方法でやればいいのでしょうか?
それともなにかもっと別の方法がありますか?
Offline
> 売上テーブルに、自己リレーションや集計フィールド
他のテーブルが集計に絡んでくるのなら、
自己リレーションの方が分かりやすいのでは。
後は説明されている通りでいいと思いますよ。
Offline
複数テーブルの自己リレーション集計フィールド同士で、さらに計算することになりますが
レコードが増えても動作に問題ないないでしょうか?
Offline
> 複数テーブルの自己リレーション集計フィールド同士
ではなくて、
集計するテーブルでは自己リレーション、
それと、
もう一方のテーブルへのリレーションでそのテーブルの集計ができます。
リレーション集計はレコード数が増えても
特にレスポンスが遅くなるようなことはないと思いますよ。
Offline
自己リレーションやリレーションをつかったテーブル間計算
というのは遅くならないんですか?
計算フィールドを参照するので遅くなるのではないんですか?
Offline
1.テーブルAを自己リレーションして計算フィールドにSUMを計算させる
2.テーブルBでも同様のことをする
3.テーブルAでAとBの計算フィールドの内、対応したものを新たな計算フィールドで引き算する
という構造では、レコードの増減によりファイルを開く速度や表示などが遅くなることはないということですか?
計算フィールドを参照すると、再計算がはいるので、自己リレーションの計算が再度行われ、レコード数によって
遅くなるのではないでしょうか?
Offline
その計算フィールドが参照しているフィールドが、さらに別の計算フィールドを参照、という場合は、遅くなる可能性もあります。ただし、そのような構成は構成を考え直すべきと言っていいでしょう。
通常は、表示されているレコードの計算フィールドのみが再計算の対象になるので、実際の運用で時間がかかるようなことは考えにくいですね。
Last edited by Shin (2017-12-23 20:28:55)
Offline
今回のような場合も考え直すべきでしょうか?
Offline
> 1.テーブルAを自己リレーションして計算フィールドにSUMを計算させる
> 2.テーブルBでも同様のことをする
> 3.テーブルAでAとBの計算フィールドの内、対応したものを新たな計算フィールドで引き算する
前にも書きましたが、
テーブルAでテーブルBの集計値を持ってくるのではなく、
テーブルAで直接テーブルBの集計をするのです。
これが実際に早さがどうなのかは分かりませんが、
常套手段でしょう。
> 今回のような場合も考え直すべきでしょうか
何を考え直すのか分かりませんが、
とりあえず試してみるのがいいのでは。
Offline
テーブルAにテーブルBの集計をするフィールドをつくるということですか?
それは、他のテーブルの計算フィールドを参照しないためでしょうか?
どちらにせよ、テーブルAから計算するときにテーブルを参照しながら計算するので
メリットはないように感じます
一応テーブルBで集計した計算フィールドはスクリプトで数字フィールドに転記するので
テーブルAとBのフィールドを計算させても問題ないかな、と思います
ファイルメーカーは、簡単につくれる反面他のデータベースに比べで独自の開発手法や要素が大ぎるので
僕の考えたかが間違っているのかもしれません
Offline
> テーブルBで集計した計算フィールドはスクリプトで数字フィールドに転記する
ならば、
計算フィールド自体不要でしょう。
スクリプトで計算して入力すればいいのでは。
しかし、
この方法は、編集などのたびに同期を取る問題が出てきますよ。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 523.73 KiB (Peak: 528.27 KiB) ]