みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
ページ: 1
PRO18
重複する値を除外したいのですが、なぜか重複していないレコードも1,2件ですが除外されます。
同じようなデータがあるため計算式で複数のフィールドを繋ぎそこに検索をかけています。
何が原因でしょうか?
>計算式で複数のフィールドを繋ぎ
単純に連結すると
ABとC
が
AとBC
と同じになってしまうので、そういうケースなのかな?
A&B&CでABCと表示されるようにしています。
そこに重複検索をかけているのですが、これではうまくいかないのでしょうか?
値は全然違います。重複検索をして下記のようにでます。
ABC
ABC
DEF
ABCは重複しているのであっているのですが、DEFは1件しかなく同じ値はないのに重複とみなされています。
何が原因なのかわからず困っています。
どのように重複を検索していますか?
例えば「!」で検索しいるなら結果をそのフィールドでソートすると重複していれば並んで表示されます。
そのフィールドで自己連結リレーションを作成して主キーをカウントした重複チェックフィールドを作ったときはどうなりますか?
本当に同じ値がないなら索引を再作成したら解決するような気もしますが......
索引をなしにして自動作成もオフにして定義を確定させ、その後索引設定を元に戻せば再作成されます。
単純な話で連結の計算フィールドの結果タイプがテキストじゃないとか。確認されました?
編集者 Moz (2022-05-14 10:26:51)
オフライン
「対象レコードの絞り込み」はしてないでしょうね。
「!」で検索すると対象外のレコードも重複対象とみなされますが...
himadanee様
知りませんでした。
「対象レコードの絞り込み」も使用しています…。
日付で絞りさらに「対象レコードの絞り込み」で結合させたフィールドに”!”で対象外になるようにスクリプトを組んでいます。
どう検索をかけるようにするのが良いでしょうか?
「重複の定義をハッキリ(具体的に)すれば」これが必要ですね。
「重複を除外」するなら、そのうちの1件だけは除外したくない場合も多いと思うけど...
皆様ありがとうございます。
LOOPを使って複製させているのですが、その条件に日付で絞り、重複しているレコードを除外するようにしてその日のレコードすべて同じ数複製するようにしています。
ですので、その日の重複していないレコードのみ残るようにしたいのです。
日付で検索し、さらに商品名、原材料、作業者を連結したフィールドに重複しているレコードを除外と言った感じでしています。
>その日のレコードすべて同じ数複製する
の意味が今一わかりませんが...
日付で絞ったあと重複判定の値が(単純化のため1文字で表現)
A
A
A
B
B
C
だったとして、「重複を除外」すると
C
だけが残るので、これをどう複製しても「同じ数」にはなりませんよね?(Aが3件Bが2件なので)
チポ様
逆にしてみましたがうまくいきませんでした。
himadanee様
A
B
C
とレコードがあるとします。それを各3つずつになるように上から順番に複製するようにしています。
A
A
A
B
C
と複製し、重複したレコードを除外し
B
C
そしてまた複製
A
A
A
B
B
B
C
で重複を除外
C
複製
C
C
C
でLOOPが終わるようにしています。
説明が下手で申し訳ございません。
そうです。
複製が終わったのを除外し、されていないのを残して対象が0になったらLOOPが終わるようにしています。
複製をしたレコードを置いたまま次の複製した場合、複製されたレコードは一番下にいくのでそのまま続けたら終わらなくないですか?
複製するのは他システムに連携する際に必要だからです。
この件では関係なさそうですが、自動入力のフィールド(複製元と同じ値にならない)をソートに指定していると、場合によっては直下にならないこともありえますよね。
例えば主キー(UUID)でソートしていると、複製直後は直下になっても、レコード確定すると位置が変わりました。
皆様ありがとうございました。
無事に解決しました。
いろいろと良い勉強になりました。
ページ: 1