2016年9月12日月曜日

ちょっと複雑なリレーションに挑戦してみよう

こんにちは!

今回は「ちょっと複雑なリレーションに挑戦してみよう!」です。

FileMaker Pro(ファイルメーカー)を始めると誰もがぶつかる壁がリレーションではないでしょうか。

「<」「>」などを使用したリレーションは使っているうちにだんだん何をしているのかわからなくなってくるかもしれません。

今回はそんなリレーションについて紹介したいと思います。


「<」「>」のリレーション


「<」「>」のリレーションはキーより小さい、大きいものを関連レコードとします。

例えば、日別の売上を保存するテーブルがあったとします。昨日の売上と今日の売上を比較したい場合にこのリレーションを使用します。

と言葉で説明してもわかりづらいので、図で説明してみたいと思います。


「date」という日付のフィールドがある「テーブル」というテーブルがあります。さらに同じテーブルからできるテーブルオカレンス「テーブル 2」とリレーション(自己リレーション)をします。

「date」同士を上の画像のように「>」でつなぎます。

さらに、レコードのソートにて下図のようにソートを設定します。


「date」フィールドを降順でソートします。

複雑なリレーションを作るうえで、このソートがカギになります。

このソートをしないと、このリレーション上で「テーブル 2」ではレコードが作成された順に並びその中で、「テーブル 2」の「date」で最も小さいものを最初の関連レコードとします。


ソートしないとこんな感じになります。

このレイアウトは「テーブル」に基づいていて、右側のフィールドは関連する「テーブル 2」の「date」を表示します。

この場合は、どの日でも最初の関連レコードとして「2016/09/06」を返します。

今度はソートをしてみます。


ソートをしたものです。

関連するレコードとして、どのレコードも前日のレコードを関連しています。このリレーションを使って計算を行えば、昨日よりどのくらい売り上げが多かったか、少なかったが計算できます。