0

4つの列を含むSQLテーブルがあります

1)ID 2)機器ID 3)日付4)時間(例:10000)

このテーブルの内容を表示するSSRSレポートがあります

開始日および終了日パラメーターは、レコードの日付範囲を選択するために使用されます

テーブルは機器ごとにグループ化されています

機器グループでは、時間の列に次の式を含む行を下に追加しました

Last(Fields!Hours.Value)-First(Fields!Hours.Value)= "実際に使用された合計時間"例:10000-9500 = 500

これは正しい「実際に使用された合計時間」を返しません

式が正しくありません

それは実際にあるべきです...

Last(Fields!Hours.Value)-PREVIOUS(First(Fields!Hours.Value))= "実際に使用された合計時間"例:10000-9450 = 550

私の問題は、どうすればPREVIOUS(First(Fields!Hours.Value))を取得できるかということです。

パラメータの日付範囲を選択しても、PREVIOUS(First(Fields!Hours.Value)は取得されません

ありがとう!

4

2 に答える 2

0

レポート式、つまり Last(Fields!Hours.Value) - First(Fields!Hours.Value) の期待される結果を取得するには、適切なOrder BY FieldName句を T-Sql/SP に実装する必要があります。

于 2012-10-15T07:31:59.037 に答える
0

先端Aftabをありがとう

SQLはすでに日付順に並べられています

PREVIOUS(First(Fields!Hours.Value) が必要な理由をよりよく理解するには、テーブルの例をご覧ください。


日付: 2012-09-01 時間 = 9500 (これは、1 日の終わりに記録された合計時間であり、翌日の開始時間として使用されます)

...

日付: 2012-09-30 時間 = 10000


だから、表現を使うと…

Last(Fields!Hours.Value) - First(Fields!Hours.Value) = "合計実際の使用時間" 例: 10000 - 9500 = 500

これは、2012 年 9 月 2 日から 2012 年 9 月 30 日までの「実際に使用された合計時間」500 を返します。

2012-09-01 から 2012-09-30 までの正しい「合計実際の使用時間」を計算するには、 PREVIOUS(First(Fields!Hours.Value) が必要です

于 2012-10-15T07:51:23.580 に答える