みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
windows11とFM19を使用しています。
自己リレーション
主キー≠オカレンス主キー
重複を判定をしているのですが、
重複している値1つのレコードのみ判断するのですが、重複している2つの値を同じように検索で出したいのですが、
どのようにすれば良いでしょうか。
宜しくお願いします。
Offline
> 重複している値1つのレコードのみ判断するのですが、
> 重複している2つの値を同じように検索で出したい
状況、希望、理解できません。
Offline
重複条件が不明ですが、主キーだけリレーションしても意味がないので、多分主キー以外の重複判定対象の複数のフィールドも=で自己リレーションでつないでいるのでは。
Count(オカレンス::主キー)>0
が重複レコードですから、検索すれば両方というか3つ以上でも重複しているものがすべて検索されるはずです。
(非保存フィールドの検索なので時間がかかる?)
チポさん himadaneeさん
ありがとうございます。
説明がめちゃくちゃでした。すみませんでした。
[商品名]=[オカレンス:商品名]でリレーションをしております。
フィールド:GetAsBoolean ( 主キー ≠ オカレンス::主キー )で重複したレコードに
1がつくようになっています。
例ですが、
みかん 0
みかん 1
みかん 1
りんご 0
メロン 0
となります。
希望としては、重複のある「みかん」0のついたみかんも含め
3つのレコードを検索したいと思っておりました。
宜しくお願い致します。
Offline
そのフラグフィールド = 0 で検索すればいいだけです。
Offline
例では、
みかんを検索結果としたいのですか?
ならば、
フラグを1で検索して、
関連レコード移動(対象レコードを照合)
の2ステップで出来ますね。
Offline
フィールドタイプが計算になってないのでは。
計算なら非保存になるので、「みかん」はすべて1になるはずです。
さいしょの「みかん」が0なのは、そのレコード上で計算された時点で重複でなかったからです。
他のレコードの変更(追加)によって重複になったレコードの重複フラグのフィールドを自動的に変更するには、非保存にするしかありません。
保存のままでやりたければ、レコード追加(変更)時に、(関連する)全レコードを再計算(全置換など)する必要があります。
検索した後で、「関連するレコードへ移動(対象レコードの)」のスクリプトを実行するんでもいいのかな。スクリプトを作らないとできませんが。
Shinさん チポさん himadaneeさん
有難うございます。
https://www.youtube.com/watch?v=o4siC05Ttl4
を参考に今回の重複をチェックしましたが、
himadaneeさんの仰る、重複レコードの値が全て1になる、方法がありましたら教えて頂きたいです。
計算フィールドは非保存でも構いません。
何度もすみませんが、宜しくお願い致します。
Offline
> GetAsBoolean ( 主キー ≠ オカレンス::主キー)
ですから、
照合1番は0を
二番目以降は1を返しますね。
Count
にすれば、
単一は1を
重複は2以上を返します。
Offline
チポさん ありがとうございます。
Countの式はどのようになるのでしょうか。
> GetAsBoolean ( 主キー ≠ オカレンス::主キー)
ですから、
照合1番は0を
二番目以降は1を返しますね。Count
にすれば、
単一は1を
重複は2以上を返します。
Offline
Count ( 自己リレーション::適当フィールド )
Count関数のヘルプです
https://help.claris.com/ja/pro-help/content/count.html
Count ( ) ≠ 1
とすれば、
重複のレコードには1を
単一のレコードには0を返しますね。
Offline
計算フィールドなら
Count(オカレンス::主キー)>1
を作ればいいのでは。
どの重複レコードも同等に扱うので、「主キー ≠ オカレンス::主キー」といったものは全く使いません。
カウントするフィールドも、空欄がなければいいのでこの場合主キーでなく商品名の方がわかりやすいか...
チポさん himadaneeさん
有難うございます。希望通りできました。
いつも有難うございます。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 527.3 KiB (Peak: 548.21 KiB) ]