みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
8ad、XPです。
すでに稼動しているDBでおかしな計算があったのでしらべると、
日付のリレーションが原因のようなのですが、いまいちしっくりきません。
ある日付の範囲で売り上げをリレーションで集計させているのですが、
12/31までのものを計算(SUM)させようとすると
2013/12/01 500円
2013/12/2 500円
このような場合、1000円が正しいのですが、500円になっていました。
日付のところを 2013/12/02 というように"0"をつけた形で入力しなおすと正しく1000円と計算されました。
念のため"0"をとるとやはり500円に戻りました。
2013/12/2と2013/12/02では扱いは同じだと思っていたのですが、、、。
これは仕様ですか?それともわたしはこれが計算がおかしくなる原因だと思ってるだけで別の原因があるのでしょうか?
Offline
日付のフィールドが、テキストになっていませんか。
Offline
まさかと思い今確認しましたが、タイプは日付でした。リレーションしてるフィールドの双方とも。
通常はレコード作成時に自動入力で 作成情報→日付で入れています。
今回、その日付フィールドを手動で書き換えた際にゼロ無しの日付で入れました。
(入力する人によってゼロ有り、無しのクセはあるでしょうが。いままではたまたま手動入力するときは
ゼロが必要の無い2桁の月、日付だったのかもしれません。)
とりあえず、取り急ぎの解決策として、このフィールドに対してオプションの計算値にもチェックをいれて、
その入力日付自身を再計算させるように修正しました。
ですので、ゼロ無しの日付(2013/12/3)を手動で入力しても、2013/12/03と入りますので
計算的には問題なくなりました。
ただ、釈然とせずなぜこんなことになってるのか不安なのです。
Offline
追記
2013/12/01 300円
2013/12/02 500円
ゼロであわせた場合、800円で正しいです。
2013/12/1 300円
2013/12/02 500円
だと500円でだめ
2013/12/01 300円
2013/12/2 500円
だと300円でだめ
2013/12/1 300円
2013/12/2 500円
両方ゼロ無しの場合は 0円でダメです。
ゼロありのものだけがやはり計算されています。
やはり文字のタイプあたりが怪しいのですが、、、タイプは日付になっています。
Last edited by やまほん (2014-01-09 23:43:01)
Offline
>タイプは日付でした。リレーションしてるフィールドの双方とも。
範囲だから、双方というか、フィールドは3つあって、不等号ですよね?
ありがとうございます。
そうなんです。
範囲で不等号なのですが。
ただ、実際のリレーションはもう少し条件が多いので
今見直しているところで、少しなぞが解けそうな雰囲気です。
一度別の角度からリレーションを見直して見ます。
一旦、保留にします。
お騒がせしてすみません。
範囲を指定しているフィールドで0を抜いてみると変わりません。
またそのフィールドも日付になっていますか。
Offline
ありがとうございます。
なおりました。
原因はその日付をもとにした別のフィールドでの計算が問題でした。
その別のフィールドも加えたリレーションを組んでいたために不具合がでたようです。
日付フィールドのリレーションは問題なかったようです。
お手数をおかけして申し訳ございませんでした。
Offline
Pages: 1
[ Generated in 0.038 seconds, 9 queries executed - Memory usage: 512.13 KiB (Peak: 516.66 KiB) ]