初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2015-10-21 15:47:07

にも
Guest

ポータルの集計値を使い引き算したい

FMpro13 Mac

ポータルが三つあり、
一つ目のポータルは商品名の一覧で、商品をクリックすると、リレーションによって、二つ目・三つ目のポータルにその商品を使っている会社名と金額がでるようにしています。
二つ目・三つ目のポータルは同じものを使っていて、フィルターのみを変えています。

二つ目のポータルはA社のみで、A社はどの商品のレコードも1つしかないので重複しません。

三つ目のポータルはA社以外の会社が全て表示され、こちらは登録日が違う場合は同じ商品でも表示するので、重複もあります。
そして金額集計というフィールドを、三つ目のポータルの中にいれて、その表示された複数の会社の金額を集計しています。


そしてやりたいことなのですが、
二つ目のA社の金額フィールド ー 三つ目の金額集計フィールド =
です。このまま実現するのは難しいですよね…

もし代替案などあれば教えて頂きたいです。
いつも分かりにくいご説明で申し訳ありません。
よろしくお願いします。

#2 2015-10-22 12:39:30

チポ
Member

Re: ポータルの集計値を使い引き算したい

関連テーブルで計算フィールドを作り、
  A社なら 金額の値
  それ以外なら -1*金額の値
を入力。

このフィールドを合計すればいいのでは。

Offline

#3 2015-10-22 14:12:44

にも
Guest

Re: ポータルの集計値を使い引き算したい

If ( 会社名 = "A社" ; 金額 ; -1 * 金額 )

計算フィールドは上記で合ってますか?
これを元に集計フィールドで合計するということでしょうか。

また、この集計フィールドはポータルの中に入れますか?

宜しくお願いします。

#4 2015-10-22 14:28:44

にも
Guest

Re: ポータルの集計値を使い引き算したい

あぁ…フィールドの計算式などいじるのであればポータルの中に…などは関係ないですよね、すみません。

#5 2015-10-22 15:10:26

にも
Guest

Re: ポータルの集計値を使い引き算したい

後出しで申し訳ないのですが…

全てのレコードには契約状態があり、契約状態フィールドに契約中・解約予定・解約済みなどが入っています。
今回は契約中のみに絞って計算結果を出したいです。

ちなみにこの契約状態フィールドは契約マスタテーブルにあり、上記までのテーブルとは異なるテーブルです。
ユニークなIDのフィールドと=で繋いでいます。

#6 2015-10-22 15:35:16

にも
Guest

Re: ポータルの集計値を使い引き算したい

二つ目のポータル 契約状態:契約中のA社の金額フィールド ー 三つ目のポータル 契約状態:契約中の金額集計フィールド = ?

上記の計算を計算式で出したいです。
連投失礼しました。よろしくお願いします。

#7 2015-10-22 16:25:39

チポ
Member

Re: ポータルの集計値を使い引き算したい

ポータルで表示されているテーブル(テーブル名を付けていただけますか)は
1商品 & 1社
ごとに1レコード

でいいですか?


契約マスタテーブル
を同じように説明していただけますか?

Offline

#8 2015-10-22 16:57:33

にも
Guest

Re: ポータルの集計値を使い引き算したい

テーブル名:商品テーブルにします。
1商品&1社ごとに1レコードの登録ですが、同じ商品&同じ会社の組み合わせで重複するレコードも多数あります。
同じ商品・会社でも、登録した日が違うと別のレコードになります。
(商品の特性上おなじ商品が同日に2つ登録されることはありません。あえてまとめずにひとつずつの登録にしています。)

契約マスタテーブルは、商品テーブルの「1商品&1社ごとに1レコード」に対し、
そのレコードが契約中、解約予定、解約済み…のどれなのかというのを入力しています。
1商品 & 1社 & 1契約状態 ごとに1レコード ということになると思います。

#9 2015-10-22 17:29:15

チポ
Member

Re: ポータルの集計値を使い引き算したい

では、

商品テーブルは
1契約ごとに1レコード
ですね。

契約マスタは
1契約の契約状態ごとに1レコードとなり、
商品テーブルから見ると
対多
になりますね。


として、
商品テーブルと契約マスタテーブルとのリレーションを
日付の降順でソート指定します。

これで商品テーブルからは契約マスタテーブルの最新のレコードが照合1番となり、
現在の契約状態が得られますね。


最初のレスの計算式を
  Case ( 契約マスタ::契約状態 = "契約中" ; Case ( 会社名 = "A社" ; 金額 ; -1 * 金額 ) )
とすればいいでしょう。

集計は
商品マスタのポータルを表示しているテーブルで
集計フィールドではなく、計算フィールドとして、その計算式を
  Sum ( 商品マスタ::計算フィールド )
               ↑
           このテーブル名は、ポータルに表示しているリレーションのテーブル名です

とします。



ただし、
この計算式にリレーションの参照フィールドを使っているので、
索引非保存となり、レスポンス等に問題が出るかもしれません。

その場合、
商品テーブルに契約状態フィールドを持たせて、
スクリプト等で入力することを考えることになるかもしれません。

Offline

#10 2015-10-23 11:37:41

にも
Guest

Re: ポータルの集計値を使い引き算したい

ありがとうございます。理想の動きになりました。
このまま実装してみます!
分かりにくい説明を読解してくださり、いつもありがとうございます。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 522.18 KiB (Peak: 526.72 KiB) ]