SQL Serverレポートサービスフォーマット時間としての時間:議事録
質問
SQL Server Reporting Serverにレポートを書いています。たとえば、ユーザーによってグループ化され、値の合計に基づいて計算された合計でグループ化されています。
現在、私のクエリは、ユーザーがより直感的であると思うように、小数点以下ではなく、HH:MM形式のように時間を返す保存されたProcを実行します。問題は、SSRS式を使用して列を合計するときに発生します。なぜなら、合計関数は、この形式での追加時間を処理するほどスマートではないからです。
何らかの方法はありますか:
- 10進形式で計算しながら、HH:MM形式で時間間隔(数分または時間)を表示しますか?
- または、HH:MMテキスト値の合計を分割して計算して、式として合計に到達しますか?
合計を取得するためだけに2回目のクエリを書く/実行する必要を避けたいと思います。
解決
自分の#1に答える:
- クエリを数分間返してください(
TimeSpent
下)。 - テキストボックスの形式をまだ「一般」に設定していない場合は
- 次の式を値として使用します。
=FLOOR(Fields!TimeSpent.Value / 60) & ":" & RIGHT("0" & (Fields!TimeSpent.Value MOD 60), 2)
- 合計テキストボックスには、次の式を使用します。
=FLOOR(Sum(Fields!TimeSpent.Value) / 60) & ":" & RIGHT("0" & (Sum(Fields!TimeSpent.Value) MOD 60), 2)
他のヒント
また、この関数をレポートのカスタムコードに配置してみてください。
Function secondsToString(seconds As int64) As String
Dim myTS As New TimeSpan(seconds * 10000000)
Return String.Format("{0:00}:{1:00}:{2:00}",myTS.Hours, myTS.Minutes, myTS.Seconds)
End Function
私のSPSは通常、数秒で時間を返します。これにより、HH:MM:SSを複数の場所で返却する必要がある場合、あまりにも一生懸命に考える必要がありません。さらに、すべての集約を正常に行い、これにラップして、きれいな形式を取得できます。
しばらく前にウェブ上でつまずいたことがわかっているので、私はこれを信用することはできませんが、どこで思い出せません。
したがって、あなたの場合はその議事録で秒に変換する必要があります。以下のコードを使用してみることができます。
= format(dateadd( "s"、(parameters!reportparameter1.value * 60)、 "00:00:00")、 "HH:MM:SS")
お役に立てれば
所属していません StackOverflow