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

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

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

You are not logged in.

Announcement

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


#1 2015-01-18 03:21:54

いるか
Guest

関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

FMP13Adv Win で開発を行っています。

独学でずっとやっているので初歩的な質問になってしまっていたら申し訳ありません。
いつも困っていて避けていることがあります。

テーブルA
AのユニークID クライアント名  次回提出期限
A000001       ○○様       


テーブルB
BのユニークID   リレーション用AのID   レポート名   提出期限     提出済
B000001        A000001              定例報告    14/12/31       1
B000002        A000001              売上報告    15/01/08       1
B000003        A000001              売上報告    15/01/10
B000004        A000001              売上報告    15/02/16

このような構成の時、テーブルAの「次回提出期限」に「テーブルBの提出済みフラグの入っていない最小の日付」を抽出したいのですが、その方法がわかりません。
また、可能であればレポート名もAに引っ張って来たいです。

こちらを実現できるようなリレーションシップの組み方、関数やスクリプトの組み方はありますでしょうか。
リアルタイム更新がベストですが、深夜1回のスクリプト更新でもかまいません。

アドバイスお待ちしています。よろしくお願いいたします。

#2 2015-01-18 09:44:50

Moz
Member

Re: 関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

Bのレコードを表示するポータルを作成し、ソート順を日付の昇順にします。
ポータルフィルタに「提出済フラグが入っていないもの」を設定します。
ポータルに表示された最初のレコードが「テーブルBの提出済みフラグの入っていない最小の日付」のレコードです。

ポータルに移動して好きなフィールドの値を取得すればよいでしょう。

Offline

#3 2015-01-18 09:47:29

バロムワン
Guest

Re: 関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

ポータルを使ってですが
こんなの作ってみました。

Bのテーブルオカレンスを作って、提出期限>Aの日付とします。
もういっこA_idを=で結び、
Aの入力画面に1行か2行の次回提出期限用ポータル(ソート近い順)(ポータルフィルタ IsEmpty ( テーブルB 2::提出済 ) を入れます)を設置すればOK

ダウンロード
(FM13 Win)

#4 2015-01-18 11:20:49

バロムワン
Guest

Re: 関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

あ、
Aテーブルの日付は計算式でGet(日付)非保存じゃないとおかしいですねぇ、ごめんなさい。
アップし直しました。

#5 2015-01-18 12:08:44

旅人
Member

Re: 関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

今、両テーブルにリレーションが設定されているのなら
Aに計算フィールド(式は=1)を作って
    A                   B
   ID        =        AのID
  計算フィールド ≠ 提出済み

の新しいリレーション(B2)を作ってB側を提出期限の昇順ソート設定すると
次回提出期限はB2::提出期限
レポート名はB2::レポート名

Offline

#6 2015-01-18 18:36:18

いるか
Guest

Re: 関連テーブルで、条件に一致するレコードの中で最小の値を取り出す方法

>Mozさん
>バロムワンさん
>旅人さん

皆様ありがとうございます!
大変参考になりました。
バロムワンさんには実際にファイルまで作っていただき恐縮です。

実際ポータル式、リレーション式の両方動かしてみましたが、レイアウト表示の自由が効く旅人さんの方法で実装してみようかと思います。
この処理でデータベースが重くなってしまうようであればポータル式に切り替えます。

とても助かりました。ありがとうございます。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 11 queries executed - Memory usage: 514.02 KiB (Peak: 518.93 KiB) ]