みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ファイルメーカーで血液データを時系列でポータル表示しています。
日付 ヘモグロビン GNRI
7/23 10.0 98
8/2 9.8 78
このGNRIの数値を使って、GNRIが98以上のなら正常、98未満なら栄養障害というように計算式で振り分けて表示しています。
Case ( GNRI < 82 ; "重度栄養障害" ;
GNRI > 82 and GNRI < 91 ; "中等度栄養障害" ;
GNRI > 92 and GNRI < 98 ; "軽度栄養障害" ;
GNRI ≥ 98 ; "リスクなし"
)
そこで相談なのですが、以上のような計算式を作ると、ポータルで一番最新の日付のGNRIの値を拾って計算をしてくれません。
ここで言うと、8/2のGNRIの値を拾ってくれず7/23の値を使って抽出されてしまいます。
ポータル表示は、日付を昇順でソートしています。
どうすれば、最新の日付のGNRIを使って計算知を抽出できますか?
Offline
リレーションの設定自体に、日付で降順ソートの指定をして、関連レコードを参照すれば良いでしょう。
Offline
リレーションの設定自体に、日付で降順ソートの指定をして、関連レコードを参照すれば良いでしょう。
Hiro様 ありがとうございます。
リレーションの設定は日付で降順ソートしています。
ということはポータルのテーブルではなくて、レイアウトの元テーブル内に以下の計算フィールドを作らないといけないということでしょうか?
Case ( GNRI < 82 ; "重度栄養障害" ;
GNRI > 82 and GNRI < 91 ; "中等度栄養障害" ;
GNRI > 92 and GNRI < 98 ; "軽度栄養障害" ;
GNRI ≥ 98 ; "リスクなし"
)
今、この計算フィールドは関連テーブル内に作っています。
変なことを言っていたらすいません。
Offline
関連テーブルで求めたいのでしたら、
自己リレーションで同様の設定をすればいいですが、
ポータルを置いてあるレイアウトのテーブルで求めればいいのでは。
また、
Case関数は条件を左から見てゆき,それが真になった時点で以後の評価をしません。
ですから、提示された式は
Case ( GNRI < 82 ; "重度栄養障害" ;
GNRI < 91 ; "中等度栄養障害" ;
GNRI < 98 ; "軽度栄養障害" ;
"リスクなし"
)
こう書けますね。
Offline
> レイアウトの元テーブル内に以下の計算フィールドを作らないといけないということでしょうか?
・当然、元テーブルで関連フィールドを参照・計算します。
・ちなみに、計算式はもっと簡素化できて、
Case (
関連テーブル::GNRI < 82 ; "重度栄養障害" ;
関連テーブル::GNRI < 91 ; "中等度栄養障害" ;
関連テーブル::GNRI < 98 ; "軽度栄養障害" ;
"リスクなし"
)
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 509.36 KiB (Peak: 516.31 KiB) ]