みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win7Pro/FMPro14
いつもお世話になります。
台帳テーブルに品番、タイプ、数量(数字)のフィールドがあり、毎日他のデータベースからデータをインポートしています。
各品番には1~150レコードがあり、1~20タイプに分かれています。
各レコードの数量フィールドには0~46.9までの数値がランダムに入ります。
お客さんから品番・タイプ別に希望数量で注文が入ります。
品番AタイプB300
品番AタイプC200
品番BタイプC80
現在あるレコードからお客さんの希望する数量に数値の合計がもっとも近いレコードをチョイスする
簡単な方法はないでしょうか?
もし可能であればどうかご教示お願いいたします。
Offline
同品番、同タイプを対象レコードとして、
差分の絶対値を全置換等で入力、
そのフィールドで昇順ソートすれば、
最初のレコードが差分最小ですね。
Offline
> 数値の 合計 がもっとも 近い レコード
合計とは? どういう意味ですか? 目的レコードまでの累計?
近いとは? 以下で、以上で、前後の絶対値で?
意図するのは、後入れ・先出しによる在庫管理?(古い在庫から先に出してゆく)
もしそうなら、レコードの時系列ID要素が必要ですよネ。
Last edited by Hiro (2017-09-05 14:11:52)
Offline
チポ様 Hiro様
ありがとうございます。
> 数値の 合計 がもっとも 近い レコード
目的レコードまでの累計
以下で
後入れ・先出しによる在庫管理はないです。
数量優先です。
Offline
例えば、100の要求に対して、40, 50, 80 があったとき、ベストは 40+50 だと思うのですが、emiさんの書き方では80になるのでしょうか。
これを考えだすと、実は、非常に難しくなってしまいます。(ナップサック問題といいます)
それを考えなくていいのならば、単純に自分より小さなレコードを比較リレーションで選び出し、数量で降べきにソートすればいいです。
Offline
>「目的レコードまでの累計」
なら、結果はその時のレコードの並び順に基づく訳で、
意図する目的を1レコードだけで表現するのは危険なのでは?
その累計値に至るすべてのレコードのレコードIDリストとかが安心では。
補足ながら、
累計にソートの説明が無いと言うことは、
デフォルトのインポート順のまま、すなわち、
結果的には「後入れ先出し」に成ると言う事ですよネ。
Last edited by Hiro (2017-09-05 15:40:36)
Offline
あああ!
読み違えていました。
私の前レスはまったく的外れのものです。
で、回答は、
できません。。
対象レコードの全ての組み合わせを作ってその合計と希望数量との差分を見る。
でしょうか。
としても、その組み合わせを作るのが大変ですよね。
Offline
チポ様Hiro様Shin様
ありがとうございます。
すみません。
いつもこの作業がメンドクサイので
ついつい投稿してしまいました。
一度 単純に自分より小さなレコードを比較リレーションで選び出し、数量で降べきにソートすればいいです。
を実際の業務で試してみます。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 512.09 KiB (Peak: 516.63 KiB) ]