我已经看到很多关于SSRS平均时间的问题,但我对此并不熟悉,这些问题都没有解决我的具体需求,所以任何帮助都会受到赞赏。
我有一个持续时间字段(Fields!Duration1.Value),持续时间以分钟为单位(例如:170)。在我的存储过程中,我将其转换为HH MM,如下所示:
CONVERT(VARCHAR(5),DATEADD(minute, test.Duration,0) ,114) AS Duration1
这就像一个魅力,我在我的SSRS报告中使用它。不幸的是,我也需要获得平均持续时间。所以我把原始字段test.Duration作为我的存储过程中的额外SELECT。报告设置为矩阵,因此它是"总计"我想要显示平均值的行。
所以我非常确定我需要先:
=Avg(Fields!test.Duration.Value)
哪个有效(但有一个荒谬的十进制值),但我怎么然后将该值格式化回HH:MM ???我确信我可以在我的存储过程中执行此操作,但我对如何在那里执行此操作并不乐观:欢迎任何欢迎!
由于
答案 0 :(得分:0)
您可以将自己的格式化功能添加到“报告代码”部分:
Public Function MinsToHHMM (ByVal Minutes As Decimal)
Dim HourString = Floor(Minutes/60).ToString()
Dim MinString = Floor(Minutes Mod 60).ToString()
Return HourString.PadLeft(2, "0") & ":" & MinString.PadLeft(2, "0")
End Function
然后在单元格表达式中调用它:
=Code.MinsToHHMM(Avg(Fields!test.Duration.Value))