初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-06-22 10:40:36

重複判定について

windows11とFM19を使用しています。
自己リレーション
主キー≠オカレンス主キー
重複を判定をしているのですが、
重複している値1つのレコードのみ判断するのですが、重複している2つの値を同じように検索で出したいのですが、
どのようにすれば良いでしょうか。
宜しくお願いします。

Offline

#2 2023-06-22 10:58:38

チポ
Member

Re: 重複判定について

> 重複している値1つのレコードのみ判断するのですが、
> 重複している2つの値を同じように検索で出したい

状況、希望、理解できません。

Offline

#3 2023-06-22 11:21:28

himadanee
Guest

Re: 重複判定について

重複条件が不明ですが、主キーだけリレーションしても意味がないので、多分主キー以外の重複判定対象の複数のフィールドも=で自己リレーションでつないでいるのでは。
Count(オカレンス::主キー)>0
が重複レコードですから、検索すれば両方というか3つ以上でも重複しているものがすべて検索されるはずです。
(非保存フィールドの検索なので時間がかかる?)

#4 2023-06-22 13:53:33

Re: 重複判定について

チポさん himadaneeさん
ありがとうございます。

説明がめちゃくちゃでした。すみませんでした。
[商品名]=[オカレンス:商品名]でリレーションをしております。
フィールド:GetAsBoolean ( 主キー ≠ オカレンス::主キー )で重複したレコードに
1がつくようになっています。
例ですが、
みかん 0
みかん 1
みかん 1
りんご     0
メロン      0
となります。
希望としては、重複のある「みかん」0のついたみかんも含め
3つのレコードを検索したいと思っておりました。
宜しくお願い致します。

Offline

#5 2023-06-22 14:27:23

Shin
Member

Re: 重複判定について

そのフラグフィールド = 0 で検索すればいいだけです。

Offline

#6 2023-06-22 14:58:04

チポ
Member

Re: 重複判定について

例では、
みかんを検索結果としたいのですか?

ならば、
フラグを1で検索して、
関連レコード移動(対象レコードを照合)
の2ステップで出来ますね。

Offline

#7 2023-06-22 15:01:11

himadanee
Guest

Re: 重複判定について

フィールドタイプが計算になってないのでは。
計算なら非保存になるので、「みかん」はすべて1になるはずです。
さいしょの「みかん」が0なのは、そのレコード上で計算された時点で重複でなかったからです。
他のレコードの変更(追加)によって重複になったレコードの重複フラグのフィールドを自動的に変更するには、非保存にするしかありません。
保存のままでやりたければ、レコード追加(変更)時に、(関連する)全レコードを再計算(全置換など)する必要があります。

検索した後で、「関連するレコードへ移動(対象レコードの)」のスクリプトを実行するんでもいいのかな。スクリプトを作らないとできませんが。

#8 2023-06-22 15:43:59

Re: 重複判定について

Shinさん チポさん himadaneeさん
有難うございます。
https://www.youtube.com/watch?v=o4siC05Ttl4
を参考に今回の重複をチェックしましたが、
himadaneeさんの仰る、重複レコードの値が全て1になる、方法がありましたら教えて頂きたいです。
計算フィールドは非保存でも構いません。

何度もすみませんが、宜しくお願い致します。

Offline

#9 2023-06-22 15:55:55

チポ
Member

Re: 重複判定について

> GetAsBoolean ( 主キー ≠ オカレンス::主キー)
ですから、
照合1番は0を
二番目以降は1を返しますね。


Count
にすれば、
単一は1を
重複は2以上を返します。

Offline

#10 2023-06-22 16:13:24

Re: 重複判定について

チポさん ありがとうございます。
Countの式はどのようになるのでしょうか。



チポ wrote:

> GetAsBoolean ( 主キー ≠ オカレンス::主キー)
ですから、
照合1番は0を
二番目以降は1を返しますね。


Count
にすれば、
単一は1を
重複は2以上を返します。

Offline

#11 2023-06-22 16:34:14

チポ
Member

Re: 重複判定について

Count ( 自己リレーション::適当フィールド )

Count関数のヘルプです
https://help.claris.com/ja/pro-help/content/count.html


Count ( ) ≠ 1
とすれば、
重複のレコードには1を
単一のレコードには0を返しますね。

Offline

#12 2023-06-22 16:35:57

himadanee
Guest

Re: 重複判定について

計算フィールドなら
Count(オカレンス::主キー)>1
を作ればいいのでは。
どの重複レコードも同等に扱うので、「主キー ≠ オカレンス::主キー」といったものは全く使いません。
カウントするフィールドも、空欄がなければいいのでこの場合主キーでなく商品名の方がわかりやすいか...

#13 2023-06-22 16:55:27

Re: 重複判定について

チポさん himadaneeさん
有難うございます。希望通りできました。

いつも有難うございます。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 528.7 KiB (Peak: 549.6 KiB) ]