みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
テーブル1::アラートのログ
テーブル2::ユーザーアクションのログ
テーブル3::新規リレーション用
フィールド定義
・テーブル1::UID1(テキスト,重複無し)
・テーブル1::イベント開始(タイムスタンプ)
・テーブル1::イベント終了(タイムスタンプ)
・テーブル1::ユーザー1(テキスト)
・テーブル2::UID2(テキスト,重複無し)
・テーブル2::startDTTM(タイムスタンプ)
・テーブル2::endDTTM(タイムスタンプ)
・テーブル2::ユーザー2(テキスト)
・テーブル3::UID3(テキスト)
リレーションの設定
・テーブル1とテーブル2
ユーザー1 = ユーザー2
and startDTTM >= イベント開始
and endDTTM <= イベント終了
・テーブル2とテーブル3
UID2 = UID3
レイアウトの確認
・ポータルのテーブル
テーブル2のレイアウトの中に配置しました.
・ポータルに配置したフィールド(のテーブル)
UID3のみ.
以上,よろしくお願いします.
> 計算フィールドはダメです
> テーブル2のユニークなフィールドとタイプをそろえます。
どちらもテキストフィールドなので,問題ないと思います.
> アラートの全文を書いてみてもらえますか?
「1つ以上の必要な関連レコードを利用および作成できないため,この操作は実行できません」と表示されます.
リレーションに設定で確認です.
「テーブル2のユニークな値を持つフィールドと,テーブル3に新たに作ったフィールをリレーションで結ぶ」ということですが,このテーブル3のフィールドになにか制限や設定,条件などはありますか?
> どのような状況でアラートがでますか?
「1つ以上の必要な関連レコードを・・・」は,テーブル2のレイアウトに配置したポータルにデータを入力,確定後に出ます.
> ポータルの最終の空白の行に入力出来ますか?
できますが,上記の通りです.
> リレーションの設定が間違っています。
テーブル2にはすでにユニークな値を持つフィールドがありましたので,これをテーブル3のフィールドとイコールで結んでいます.
チポさん:
昨日はアドバイスありがとうございました.
1)チポさんのアドバイスを元に試行錯誤してみましたが,どうしても「1つ以上の必要な関連レコードを・・・」というメッセージが出てしまい,先に進めません.
2)また,試行錯誤しているうちに「このポータルの新規行にテーブル1の関連レコードのイベントを一つずつ入力することでテーブル3のレコードが作成されます」のところが理解できていないのでは?と思い始めています.
上記2点について,改めてコメントをいただけないでしょうか?
チポさん:
頭から煙が出そうですが,まずはやってみます.
また質問するかもしれませんが,そのときはよろしくお願いします!
ありがとうございました.
> テーブル2か、新たなテーブル3で関連するイベントごとにレコードを作ることになるのでは。
うぅぅぅ・・・そうなりますか・・・
テーブル2に作るとなると,逆の「1対多」になり元の木阿弥になりかねないので,テーブル3を作ることにします.
そこでもう1つアドバイスを頂きたいことがあります.
この場合の別テーブルの作成(データのコピー?)で,効率のいい方法はありますでしょうか?
以前,一度チャレンジしたのですが,そもそもテーブル間のデータのコピーがうまくいかず,途中で断念しました.
> ポータル内でその関連レコードだけとの計算を表示とはいかないでしょう。
となると,テーブル2側にテーブル1のデータをコピーするような作業が必要になるでしょうか?
テーブル1のレコード数が3000程度あり,できるだけ手動での作業を使わずに実現させたいです...
チポさん:
コメントありがとうございます。
> テーブル2からイベントを特定出来ませんよね。
私の説明がわかりにくく申し訳ありません.
テーブル1で決まる範囲を基準に考えたいので,テーブル1からテーブル2を「1対多」でデータを参照し,テーブル1の値(テーブル1::日時1)とテーブル2で該当するデータとの演算を行いたいと考えています.
FMPadv15,win10です.
システムログの解析をFMで行おうとしています.
テーブル1::日時1(あるイベントが開始された日時)
テーブル1::日時2(このイベントが終了した日時)
この2つのフィールドを配置したレイアウトに,日時1と日時2の期間内にシステムにログインしたユーザーのログイン日時(データはテーブル2にあります)をポータルで配置しました.
リレーションの条件は,
日時1 <= ログイン日時 かつ ログイン日時 <= 日時2
です.ここで,
ログイン日時 - イベント開始日時
を計算したいのですが,単純にこの計算をすると,最初のポータルの値での計算しかされません.
テーブル1とテーブル2を組み合わせた別のテーブルを作ることも検討しましたが,イベントは同時に複数起動することがあるため,1つのログ(テーブル2のデータ)が複数のレコード(テーブル1)に該当することがあり,うまく作れませんでした.
ポータル内のそれぞれの値でそれぞれ計算を行うにはどうしたらよいでしょうか?
Pages: 1
[ Generated in 0.009 seconds, 6 queries executed - Memory usage: 597.34 KiB (Peak: 618.32 KiB) ]