みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
よろしくお願いします。FileMaker13です。
下記のような棚卸しデータがあります。
日付 棚番号
2013/09/04 7
2013/12/28 1
2014/01/10 2
2014/04/02 3
2014/04/04 3
2014/09/01 1
2014/09/03 9
2014/12/29 9
2015/01/06 9
現在の棚に移動した日を求めたいのですが、
どのように計算すればよいでしょうか。
上記の場合は、9の棚に移動した2014/09/03です。
商品コード?と日付>日付で自己リレーションして、関連テーブル側を日付降順設定すると
前回の棚番号は Table 2::棚番号になるので
Case ( 前回の棚番号 ≠ 棚番号;日付 )という計算フィールドを作ると、最初に同じ棚になった
日付が出るからこれのMaxで求められそう。
移動が無かった商品は別に考えないといけないかも。
Offline
SQLだと簡単に出ます。
Let ( [
棚番号 = 9
] ;
Substitute ( ExecuteSQL ( "SELECT MIN ( \"日付\" ) FROM \"table1\" WHERE \"棚番号\" = ?" ; "" ; "" ; 棚番号 ) ; ["-" ; "/"] )
)
テーブル定義とレコード数によっては動作が遅いかもしれません。
一覧画面上に表示したいのであれば集計フィールドと小計パートを使うのが良いかと思います。
それでいいのかな?
例で考えると
棚番号9が連続してありますが、
それ以前に棚番号9が有った場合、
それは
「現在の棚に移動した日」
ではないですよね。
そのようなことは無い?
Offline
barikan様、ありがとうございます。
今はSQLを使わない方法を覚えたいです。
旅人様、チポ様、ありがとうございます。
チポさんの仰るとおりです。過去に同じ棚にあった日は関係ないです。
Case (
棚番号 ≠ 前回の棚番号; 日付;
前回の同フィールド
)
としてみたのですが、すべて?となってしまいました。
言われてみると確かにそうですね。
全然勘違いしていました。
日付 棚番号
2013/09/04 7 1
2013/12/28 1 2
2014/01/10 2 3
2014/04/02 3 4
2014/04/04 3 4
2014/09/01 1 5
2014/09/03 9 6
2014/12/29 9 6
2015/01/06 9 6
上のように棚を移動する度に1増えるフィールドを作れば
その中から日付の最小値で出せると思います。
それはすごくいい方法ですね!
ありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 513.51 KiB (Peak: 518.05 KiB) ]