4 返信 最新の回答 日時: Jan 30, 2017 2:29 AM ユーザー:takara-mmg

    別テーブルにある直近のレコードの値と計算する

    takara-mmg

      こんにちは。

       

      掲題のように、ひとつのテーブルの値を元に、別のテーブルにある値で直近の値を求める方法をご教授いただけますと幸いです。

      大量のデータがあるため、スクリプトをしようせず、リレーションと計算フィールドでの関数設定のみで行いたく思っておりますが可能でしょうか。

       

      よろしくお願い申し上げます。

        • 1. Re: 別テーブルにある直近のレコードの値と計算する
          user14047

          どんな値が入っていてどんなデータベース構造なのかわからないので、的確に答えることはできませんが、

          場合によっては、リレーション先テーブル::フィールド という計算式だけでいいかもしれませんし、

          ルックアップを使って値を設定してしまってもいいかもしれません。

          何をもって直近とするのか、たんに一番新しい(最後に作られた)レコードの値が直近なのか?

          それとも他に日付フィールドが双方にあって、その日付に一番近い日なのか?その場合は過去日も未来日もあるのか?

          一度整理しながら考えてみてください。

           

          FileMaker Pro 15 ヘルプ : ルックアップについて

          FileMaker Pro 15 ヘルプ : リレーションシップについて

          • 2. Re: 別テーブルにある直近のレコードの値と計算する
            takara-mmg

            user14047 様

             

            いつもありがとうございます。

             

            仰るとおり、それぞれのテーブルに日時のフィールド設けております。

            直近とするのは、現在のレコードの日時から、一番近い日時を持つ、他のテーブルのレコードです。

            使用するのは、過去、未来いずれかです。

             

            ご確認の程、よろしくお願いいたします。

            • 3. Re: 別テーブルにある直近のレコードの値と計算する
              TailCapeT

              前回日や、次回日の算出は、多く使う機能で、

              理解しやすい方法から速度を考えて方法まで、沢山の手法があります。

               

              よって、最適解ではないですが、一つ方法を挙げます。

               

              日付でリレーションを張って値を出します。

               

              現テーブルの日時 > 別テーブルの日時

              のリレーションで過去が出ますから、この最大値が過去の直近、

               

              現テーブルの日時 < 別テーブルの日時

              のリレーションでで未来が出ますから、この最小値が未来の直近、

               

              両者の近い方を採用すれば良いかと思います。

               

              最小値や最大値はリレーションをソートして、出しても良いですし、Max関数やMin関数を使っても良いです。

              データが多くなるとソートは重くなるので、関数で取得がお勧めです。

               

              ソートさせるなら、無制限にせずに、期間を切るリレーションを追加すると遅くなりにくいです。

              1 人中 1 人が役に立つと言っています
              • 4. Re: 別テーブルにある直近のレコードの値と計算する
                takara-mmg

                TailCapeT 様

                 

                解決いたしました。

                確かに、日付で直近であれば、リレーションの比較演算子でMAXやMINを求めれば過去、未来、両方とも求められます!!

                ありがとうございました。