みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
ソートがうまくいかないのでご教授願います。
「経過年月」フィールドに「XX年XXヶ月」というような表示で、導入日から今日までの計算式により経年を表示させています。
この「経過年月」フィールドをソートした時に「XX年XXヶ月」という表示のままで、昇順、降順のソートを行いたいです。
自分でやってみたのですが、何度試しても、うまくいきません。
なんとかいい方法がないでしょうか?
よろしくご教授ください。
Offline
うまくいかない、という内容は。
文字でソートされているので、昇べきのソートでは、9年5ヶ月は10年5ヶ月より後ろになります、という事かな。
数値でソートするように工夫が必要でしょう。
Offline
早速の回答ありがとうございます。
数値でソートするように工夫が必要との事ですが、この「経過年月」フィールドは9年5ヶ月というように
数値と漢字で表記されます。また、計算結果から自動で導き出されてきます。
どのようにすれば数値でソートされるようになるのでしょうか?
よろしくお願いいたします。
Offline
別に、経過期間を月で計算(10年5ヶ月ならば125月)させたフィールドを作ると一番簡単でしょう。
Offline
返信ありがとうございます。
「経過年月」フィールドに計算式により導かれた「XX年XXヶ月」という値を、
さらに計算式により「経過月数」という新たに作成したフィールドへ変換するという事でしょうか。
その場合、「経過月数」フィールドにはどのような計算式が入りますか?
よろしくお願いいたします。
Offline
Evaluate ( Substitute ( 経過年月 ; ["年" ; " * 12 + " ] ; ["ヶ月" ; "" ] ) )
ちょっと難しいかな・・
Offline
> 導入日から今日までの計算式
これを変形させるのがいいのでしょうが。
例えば、Year ( 今日 ) * 12 + Month ( 今日 ) - Year ( 導入日 ) * 12 - Month ( 導入日 )
この結果から、Div ( 結果 ; 12 ) & "年" & Mod ( 結果 ; 12 ) & "ヶ月" で文字列に変換できます。
Last edited by Shin (2017-09-27 18:56:21)
Offline
導入日から今日までの計算式により経年を表示させています。
導入日が、日付で入っているのなら 導入日 でソートしては?
導入日が、日付で無いならダメですが、日付で扱いたいモノは、フィールドタイプも日付とした扱っておいたほうが、良いですよ。
Offline
確かに、
qb_dpさんの言われる通りですね。
導入日でソートすればいいことでした。
さらに、
経過年月が計算フィールドだと、索引非保存となりますから、
導入日を使った方が高速ですね。
Offline
皆さんいろいろなアドバイスありがとうございます。
おっしゃる通り、導入日でソートしてそれを活用する方が早いですね。
データベースを作成するときにその後の活用のやりやすさまでも考えて構築する必要がありますね。
将来的な活用方法までも考えて、もう一度システムを見直してみます。
本当に勉強になりました。ありがとうございました。
また分からないことがあったらよろしくお願いいたします。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 517.4 KiB (Peak: 521.94 KiB) ]