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

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

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

You are not logged in.

Announcement

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


#1 2023-07-06 15:23:35

DD
Guest

フィールド値の返し方

こんにちは。
テーブルAにBの『値』を入れるにはどうすればよいでしょうか。
例えばテーブルAの西暦2020の基準年は
テーブルBの基準年2023と2019の間にあり
古い基準年『2019』を返すようにしたいです。
よろしくお願いいたします。

テーブルA
西暦  基準年
2020 『2019』
2019 『2019』
2018 『2015』
2017 『2015』
2016 『2015』
2015 『2015』
2014 『2011』

テーブルB
基準年
2023
2019
2015
2011

#2 2023-07-06 16:19:29

Shin
Member

Re: フィールド値の返し方

Div (  a + 1 ; 4 ) * 4 - 1

Offline

#3 2023-07-06 16:22:37

himadanee
Guest

Re: フィールド値の返し方

この場合は計算で出したほうが簡単でしょうけど、
別のテーブルから参照するなら、ルックアップで「一致する値がない場合」を使うとか、>=リレーションで自分以下の値のレコードの最大値を参照します。

#4 2023-07-06 18:09:42

DD
Guest

Re: フィールド値の返し方

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

Shin様
Div (  a + 1 ; 4 ) * 4 - 1 は 4年周期という意味でよいでしょうか。

himadanee様
ルックアップの設定はこれまで完全に一致する値しか使ったことがなかったので、それ以外の使い方がわかりました。
ありがとうございます。
リレーション>=リレーションで自分以下の値のレコードの最大値を参照 はソートの指定でしょうか?
明日試してみます。

#5 2023-07-06 18:20:41

Shin
Member

Re: フィールド値の返し方

基準年
2023
2019
2015
2011
に合わせた計算です

Offline

#6 2023-07-07 08:55:35

DD
Guest

Re: フィールド値の返し方

Shin様
基準年が2028年なったときは
2027年が返るのですがその場合はどうすればよいでしょうか。
現時点では次は基準年2027となる予定ですが、今後の状況で変わるかもしれません。

himadanee様
リレーション>=リレーションで自分以下の値のレコードの最大値を参照 できたと思います。
フィールドを計算タイプでMax ( 基準年::西暦)とすると欲しい値が得られました。

#7 2023-07-12 15:09:47

himadanee
Guest

Re: フィールド値の返し方

規則性が変わる可能性があるなら、テーブルを使わない計算式はやめた方がいいですね。
変わった時点で計算式を考え直してもいいけど面倒でしょう。

リレーションを使わない計算式
ExecuteSQL("
SELECT MAX(\"基準年\")
FROM \"テーブルB\"
WHERE \"基準年\"<=?
";"";"";テーブルA::西暦)

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 551.54 KiB (Peak: 579.1 KiB) ]