みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
OS:[Windows 7] FileMaker Ver:[14adv]
お世話になっております。
テーブルA - テーブルB
テーブルA - テーブルC がリレーションしてます。
テーブルBのフィールド1が○だったら
テーブルCからlist関数で内容を引っ張ってきたいのですが
全部引っ張ってきてしまいできません。
条件付きlist関数のような処理がしたいのですが。。。
テーブルAが1レコードに対し
テーブルB、Cは1~5レコード存在します。
よろしくお願いいたします。
BとCが直接つながっていないので、、
BとCから見て、Aが対1ならば
Bに、AのCとの照合フィールドの値を持ってきて、
そのフィールドとCとでリレーションすればいいのでは。
Offline
BとCが直接つながっていないので、、
BとCから見て、Aが対1ならば
Bに、AのCとの照合フィールドの値を持ってきて、
そのフィールドとCとでリレーションすればいいのでは。
>>BとCが直接つながっていないので、、
そうですよね。。。
Bのステータス(フィールド内容)が変わることがあるので
持ってくるということができません。
計算式でもスクリプトでも良いのですが。
何かありませんでしょうか。
BとCをIDでつなげれば実現できますでしょうか。
よろしくお願いいたします。
A対Bが1対多ということですが
>テーブルBのフィールド1が○だったら
はどの関連レコードのフィールド1なのか分からないのでは?
どのリレーションも照合フィールドは同じなのですか?
Offline
> BとCから見て、Aが対1
これへの解答が有りませんが、
ではないとして考えれば。。
リレーションが
B::b = A::a1
と
A::a2 = C::c
とします。
Bで計算フィールドを作り
List ( A::a2 )
として、このフィールドと
C::c
とでリレーションすれば、Cを直接参照できます。
Offline
リレーションが2つあって
A::ID = B::ID
A::ID = C::ID
で、Cの計算で
List(B::何かフィールド)
をB::フィールド1が○のレコードだけにしたいということでは?
Bに
Case(フィールド1=”○”;値が必要なフィールド)
のフィールドを作って、
List(B::そのフィールド)
でいいと思うけど。
この方法だと値が必要なフィールドごとに計算フィールドが必要になる。
んん?
> テーブルCからlist関数で内容を引っ張ってきたいのですが
これは、
テーブルBで、テーブルCのフィールド値を得たい・・これは私の解答
テーブルCで、テーブルBのフィールド値を得たい・・これはtimさんの解答
どちらでしょう?
Offline
皆様ご教示ありがとうございます。
確認したところ、大変申し訳ございません。
誤っておりました。
テーブルA - テーブルB
テーブルB - テーブルC
がリレーションでした。。。
テーブルAは大元のテーブル。
テーブルBはテーブルCで選択したものをテーブルAのレコードごとに複数個保持しておくテーブル。
テーブルCはマスタです。
テーブルBにはステータスがあり、
ステータスが○の時だけ、
テーブルAにテーブルCのフィールド内容を引っ張ってきたいということです。
ご回答いただいたところ誠に申し訳ございません。
引き続きよろしくお願いいたします。
テーブルBに、Case ( ステータス = "○" ; テーブルC:フィールド ) という計算フィールドを作り,それを list() 表示させれば良いですね。
ただ、テーブルB - テーブルC で該当レコードが複数有るのでしたら,そこにも List() を使う事になるかと思います。
Offline
ありがとうございます。
できました!
助かります!
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 519.12 KiB (Peak: 523.66 KiB) ]