在SSRS报告中使用AVG

时间:2016-12-07 20:01:44

标签: ssrs-2012

我的字段名称为Flights小时,值为:

飞行时间:
 44 + 33 77 + 34 69 + 20 64 + 36 81 + 10 81 + 19 85 + 34

我需要AVG来获得这些价值。值显示小时+分钟 任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果这些值出现在DataSet的特定字段中,每个字段都作为单独的记录(根据我的评论),那么我将使用如下表达式:

=CStr(Floor(Avg((CInt(Left(Fields!FlightHours.Value,InStr(Fields!FlightHours.Value,"+")-1))*60) + CInt(Right(Fields!FlightHours.Value,Len(Fields!FlightHours.Value)-InStr(Fields!FlightHours.Value,"+"))))/60)) & "+" & CStr(Round(Avg((CInt(Left(Fields!FlightHours.Value,InStr(Fields!FlightHours.Value,"+")-1))*60) + CInt(Right(Fields!FlightHours.Value,Len(Fields!FlightHours.Value)-InStr(Fields!FlightHours.Value,"+")))) Mod 60))

这将获取原始值(即44+33)并分别分出小时和分钟(根据+字符的位置,将它们转换为数字整数值,然后将小时数乘以60,并与分钟相加以获得总分钟数。然后我们将整个DataSet的这些值进行平均,然后再转换过程,将平均分钟值分成它的组成小时和分钟,然后重新格式化为字符串以[h]h+[m]m形式显示原始值。

对于您的示例数据,这会得到72+1的结果,我认为这是正确的。