みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
チポさん、Shinさん、
ありがとうございます。
できました。。ありがとうございます。
まず、
>テーブル2とテーブル3のリレーションの説明が有りません。
についてですが、テーブル2に 「テーブル3用のID」というフィールドを作って、それとテーブル3のIDとでのみリレーションをかけていました。このリレーションのみで、テーブル3にある「販売先」、「販売月」をテーブル2に対しては引っ張てこれるので十分だと思い、「販売先」及び「販売月」のフィールドはテーブル2に設けておりませんでした。
ですが、普通にテーブル2にもこのフィールドを設けて、テーブル3とリレーションをかければいいのですね。。
なんとも、皆さまにはとっても当たり前のことでお恥ずかしいですが、目から鱗でした。。
今回ので他のDBの構造もだいぶ改善することができます。。
本当に、ありがとうございます。
シャチ様、チポ様、ありがとうございます。
あまり詳しく書いてお手間をとらせてもと思いましたが、逆にご迷惑をかけたようで失礼いたしました。
以下、ご確認いただければ幸いです。
テーブル1は 「製品名」、「販売先」、「販売月」、「予測量」が入力されている、販売予測のテーブルとなります。
テーブル2は 「製品名」、「販売量」が入力されている、販売実績のテーブルとなります。
テーブル3は テーブル2にデータを入力するためのエントリーテーブルとなり、テーブル2は、テーブル3内のポータルとなっております。テーブル3に、「販売先」と「販売月」が入力されており、テーブル2のデータが関連付けられています。
先の質問でZと言っていたのは、この「販売先」と「販売月」のことです。
最終的に行いたいのは、テーブル1 と テーブル2(実際には、ポータル元のテーブル3のフィールドも含む)とで、「製品名」、「販売先」、「販売月」にてリレーションをさせて、販売予測の「予測量」と実績の「販売量」とを比較することになります。
入力のフローとしては、テーブル1には、「製品名」、「販売先」、「販売月」、「予測量」をそれぞれ事前に販売予測として入力しておきます。
その後、実際に製品が販売された後に、まずは、テーブル3にて、「販売先」と「販売月」を入力し、さらに関連ポータルとして表示されているテーブル2に、「製品名」と「販売量」を入力しております。テーブル3のひとつのエントリーに対して「製品名」と「販売量」は複数エントリーとなることが常です。
今回、テーブル1とテーブル2とで、「製品名」ではリレーションを掛けられましたが、さらに追加で「販売先」と「販売月」についてもリレーションをかけようとしたところ、実際にはテーブル3のフィールドであるため、リレーションを掛けられませんでした(当たり前ですが、、)。
おそらく、テーブル2にも、「販売先」と「販売月」の項目を設けて、入力時に、テーブル3のフィールドからコピーする、というのが一つの方策かと思いますが、上記で、注意すべき点や他の方策などございましたら、教えていただければ幸いです。
どうぞよろしくお願いいたします。
シャチさん、 ありがとうございます。
まさに、以下の回答を最終確認したかったのです。
>一般的には、Zがテーブル3のものであれば、テーブル2では索引が作れないのでそもそもリレーションができない。
やはり無理ですよね。ご指摘いただいたとおり、コピーするなりの方法で進めてみます。
>もしなんとかリレーションをしたいのならZの値をなんらかの形でテーブル2に取り込む必要があります
ありがとうございます。
こんにちは。
二度目の投稿となります。
タイトルがややわかりづらく恐縮ですが、以下に説明いたします。
テーブル1 テーブル2 テーブル3 があります。
すでにテーブル2 と テーブル3 はリレーションがなされています。
ここで、テーブル1 と テーブル2 とで新たにリレーションをかけたいとします。テーブル2の複数フィールドA , B , Z に対してリレーションをかけたいのですが、Zは、実際にはリレーション先のテーブル3のフィールドとなります。
テーブル3のフィールドZを対象に、テーブル1とテーブル2とでリレーションはかけられないと思いますが、何かしら代替案はありますでしょうか。
ひとつ試したのは、テーブル3のZにデータ入力がされた時点で、同じ値をテーブル2のフィールドZZにコピーをし、そのZZとリレーションをかける、といった方策ですが、後日テーブル3のZが変更された場合は、それがテーブル2のZZに反映されないため、不正確となります(都度反映されるスクリプトをつくるのもひとつかと思いますが。。)。
もし、よりすっきりした方策がありましたら、アイデアをいただけますと幸いです。
どうぞよろしくお願いいたします。
fukurowさま
できました。ソートがこのように機能するとは初めて知りました。。
目から鱗です。本当にありがとうございます。
引き続き勉強してまいります。
OS:[Windows10 ]FileMaker Ver:[14]
初めて投稿させていただきます。
情報に不足あれば、ご指摘ください。
以下のテーブルAがあります。
テーブルA
レコードID アイテム 量 入力日
1 品番A 100kgs 08/15
2 品番B 200kgs 08/15
3 品番A 200kgs 09/15
このときに、リレーションしたテーブルBにて、直近の入力日(過去日のみ)に入力した情報を参照したいと思っています。
例えば、品番Aについては、レコードIDが3の 入力日09/15 量200kgsを 引っ張りたいと思っております。
とりあえず、 アイテム にて自己リレーションをかけて、Max(入力日)で、最新の日付を拾うか試してみましたが、古い方の日付を拾い、うまくいきませんでした。
どのようなリレーションを組めばよいか、ご教授いただけると幸いです。
Pages: 1
[ Generated in 0.006 seconds, 6 queries executed - Memory usage: 586.88 KiB (Peak: 591.8 KiB) ]