Crystal Reports 2016を使用しています。データソースはMS SQL Server 2008 R2です。現在、パラメーターを使用して、レポートの日付範囲をユーザーに求めることができます。時間範囲のプロンプトも追加したいと思います。DateTimeパラメータのプロンプトを使用しても、期待どおりに動作しません。日付範囲はより大きな日ウィンドウを選択し、時間範囲はレポートがデータを表示するその日の何時かを選択します。DateTimeパラメータプロンプトを使用しても、レポートの開始と終了の日付/時刻に精度が追加されるだけで、望みどおりに動作しません。両方のプロンプトは、データベース内の同じDateTimeレコードを参照します。
別の2番目のパラメータープロンプトを追加することを試みましたが、パラメータープロンプトをDateTime値に変更した場合と同じ結果になります。繰り返しますが、それは私の望ましい結果ではありません。
具体的で具体的な例として、9月1日から10月31日まで有効なデータを使用したいと思います。レポートしていることが午後2時から午後10時の間に発生した場合です。日時を選択した場合、9月1日午後2時と10月31日午後10時を選択できます。しかし、それは私が選択しようとしているものではありません。
基本的に、これらの日に午後2時から午後10時の間に発生したデータを選択します。開始日と終了日を選択できる場合。開始時間と終了時間を選択できます。
SQL用語を使用して、日付範囲と時間範囲(中央の範囲)の内部結合が必要だと思います。
まったく無関係ですが、類似した例です。この現象は、Outlookの会議に似ています。非常に長い会議を1日/時間に開始し、数日後に別の日/時間に終了することは可能ですが(そうすべきではありません)、定期的な会議を作成して、自分と自分の部屋のスケジュールを適切に管理する必要があります。定期的な会議と同様の方法でレコードを選択したいと考えています。
select expert
探しているデータを取得するルールを作成するにはどうすればよいですか?これを行う他の方法はありますか?たぶんサブレポート?
HH
2 PM及び使用して10 PMの間にあるDATEPART
機能を。したがって、たとえばSELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
ビューで列を明示的に使用せずに、select expert
レポートをポイントして、選択した日付期間のデータをそこから取得します。もう1つの方法は、同じT-SQLクエリをCR SQLコマンドにすることですが、SQLビューの方がはるかにパフォーマンスが良い場合があります。
SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
使用して、SQLビューselect column1, column2 FROM ~
などのクエリで列固有にすることができます*
。