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

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

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

You are not logged in.

Announcement

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


#1 2016-03-27 02:12:16

ていく
Guest

計算フィールドの記述内容について

お世話になります。
win7 FMpro13adを使用しています。

質問なのですが以下のようなレコードがあり

(患者番号) (曜日コード)  (曜日)  (シフト番号)
1      1        月曜
1      3        水曜
1      5        金曜
2      1        月曜
3      2        火曜
3      4        木曜
3      6        土曜


月水金3日間あればAシフト、火木土3日間あればBシフト、それ以外の条件は不正値という設定で、
下記のように「シフト番号」フィールドに値を入れたいと思います。
(今回の場合、患者番号1の方がAシフト、患者番号3の方がBシフト、患者番号2の方が不正値になります)
             

(患者番号) (曜日コード)  (曜日)  (シフト番号)
1      1        月曜    Aシフト
1      3        水曜    Aシフト
1      5        金曜    Aシフト
2      1        月曜    不正値
3      2        火曜    Bシフト
3      4        木曜    Bシフト
3      6        土曜    Bシフト

実際は患者番号が数千レコードあり、またシフト番号の表示にリアルタイム性を求められる為、
今回スクリプトはできるだけ使わず、「シフト番号」フィールドを計算フィールドで処理したいのですが
具体的にどうのような記述をすればよいか分からない為、ご教授いただけませんでしょうか?
よろしくお願い致します。

#2 2016-03-27 03:41:21

Hiro
Member

Re: 計算フィールドの記述内容について

「シフト番号」を求める式は、
「患者番号」をキーに自己リレーション「テーブル 2」を作り、


Let([
   #lst=List(テーブル 2::曜日コード);
   #lstA=List(1;3;5);
   #lstB=List(2;4;6)
];
   Case(
      FilterValues(#lstA;#lst)=FilterValues(#lstA;#lstA); "Aシフト";
      FilterValues(#lstB;#lst)=FilterValues(#lstB;#lstB); "Bシフト";
      "不正値"
   )
)

Offline

#3 2016-03-28 22:17:45

ていく
Guest

Re: 計算フィールドの記述内容について

Hiro様ご返信ありがとうございます。

教えていただいたコードで無事に出来ました。
ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.012 seconds, 11 queries executed - Memory usage: 505.09 KiB (Peak: 509.63 KiB) ]