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

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

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

You are not logged in.

Announcement

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


#1 2021-04-14 10:28:31

hiro7777777
Member

スクリプトで同一IDの最大値のシリアルNoの検索

恐れ入ります。

可能であればお教えいただきたいのですが、現在以下のように

-顧客ID-・ー顧客名ー・・・・・・・-シリアルNo-

となっており、シリアルNoは数字のみで構成されており、単純に1ずつ増えていくものです。


私の扱ってるデータは毎月1回何万件というものをインポートし、管理していくのですが、

同一契約ID方が1月・2月・4月などと複数あり、最新のものを1行だけ表示したいのです。

そこで顧客IDのその中のシリアルNoの最大値で検索できればと思ったのですが、

そのようなことは可能でしょうか?

可能でしたら、どのように記述すればよいかご教授ください。

また、このような検索方法ができない場合、お知恵をお貸しいただければ幸いです。

よろしくお願いいたします。

Offline

#2 2021-04-14 10:49:26

チポ
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

顧客IDごとのレコードを持つ顧客マスタのようなテーブルはないのですか?
このテーブルがあれば、このテーブルにノータッチで常に表示することができますが、、

Offline

#3 2021-04-14 10:50:26

Shin
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

IDで自己リレーションをはり、リレーションの中でシリアルで降べきにソートしておきます。そのリレーション先のフィールドを表示すればいいです。

Offline

#4 2021-04-14 11:19:27

hiro7777777
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

ご回答いただきありがとうございます。

大変申し訳ございません。
私が慌てていて、表現が間違えておりわかりづらくなっておりました。

再度質問させていただきます。

同一契約IDの方が1月・2月・4月などと複数あり、検索の際にIDだけで検索すると複数でてきます。
いろいろと事情があり、検索ボタンを作成し、検索したときに最新のものを1行だけ表示したいのです。
同一顧客IDの中のシリアルNoの最大値で検索できればと思ったのですが、そのようなことは可能でしょうか?

ということでございました。

申し訳ありません。

Offline

#5 2021-04-14 11:52:06

Shin
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

検索はIDでおこなっているのですか。
IDがユニークのテーブルがあれば、そこで検索して、リレーション先を表示すればいいです。

Offline

#6 2021-04-14 13:25:57

チポ
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

> 契約ID
> 顧客ID
これは同じものですか?

Offline

#7 2021-04-14 15:35:34

hiro7777777
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

チポ wrote:

> 契約ID
> 顧客ID
これは同じものですか?


すみません。同じものです。

Offline

#8 2021-04-14 15:57:43

チポ
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

表示されればいいのなら、前レスでできます。


どうしても検索が必要でしょうか?

検索は
顧客ごと、最大シリアルのレコードにフラグを立てて、それを検索。
これは、非保存のフィールドを検索することになるでしょうから、
レコード数が多いと時間がかかりますネ

もう一つの方法
  顧客ID
  シリアルの降順
でソートして、
最初のレコードから順に顧客IDが変わったら対象外に
を最後のレコードまで繰り返し、
対象外を表示


どちらが高速かな?

Offline

#9 2021-04-14 19:54:49

Hiro
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

$変数に目的の最大シリアル値を算出・格納し、その変数をキーに検索するのが一番楽かな?
最大シリアル値はSQL関数式で一発算出すれば簡単です。

スクリプトは2ステップのみ、(※リレーションなど他の一切の事前設定は不用!!)
【変数を設定】
●$変数 = ExecuteSQL(" SELECT MAX(""シリアル"") FROM ""テーブル"" WHERE ""顧客ID""=? "; ""; ""; 顧客ID)
【検索実行】
●$変数(最大シリアル値)をキーに検索実行

Offline

#10 2021-04-15 09:26:39

チポ
Member

Re: スクリプトで同一IDの最大値のシリアルNoの検索

取り違えていたか??

> 最新のものを1行だけ表示したいのです。
> 同一顧客IDの中のシリアルNoの最大値で検索

一つの特定の顧客IDの最大シリアルのみを表示?
各顧客IDごとの最大シリアルのリストを表示?

私は後者で回答していました、
どちらでしょう?

Offline

#11 2021-04-15 10:05:46

himadanee
Guest

Re: スクリプトで同一IDの最大値のシリアルNoの検索

私も後者だと思ってたけど、顧客IDで検索するというので、実は前者だったようですね。

ID検索後にシリアル最大=一番最後の行に移動(してそのレコードだけを表示)ぐらいでもよさそう?

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 521.45 KiB (Peak: 525.98 KiB) ]