在 SSRS 报告中使用 AVG
Use AVG in SSRS report
我有一个名为 Flights hours 的字段,值为:
飞行时间:
44+33 77+34 69+20 64+36 81+10 81+19 85+34
我需要这些值的 AVG。值显示小时+分钟
任何人都可以帮忙吗?
如果这些值出现在数据集中的特定字段中,每个都作为单独的记录(根据我的评论),那么我会使用如下表达式:
=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 并与分钟相加以获得总分钟数。然后我们在反转过程之前对整个数据集的这些值进行平均,将平均分钟值拆分为其组成小时和分钟,然后重新格式化为字符串中的字符串根据原始值形成 [h]h+[m]m
。
对于您的样本数据,这给出了 72+1
的结果,我认为这是正确的。
我有一个名为 Flights hours 的字段,值为:
飞行时间:
44+33 77+34 69+20 64+36 81+10 81+19 85+34
我需要这些值的 AVG。值显示小时+分钟 任何人都可以帮忙吗?
如果这些值出现在数据集中的特定字段中,每个都作为单独的记录(根据我的评论),那么我会使用如下表达式:
=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 并与分钟相加以获得总分钟数。然后我们在反转过程之前对整个数据集的这些值进行平均,将平均分钟值拆分为其组成小时和分钟,然后重新格式化为字符串中的字符串根据原始值形成 [h]h+[m]m
。
对于您的样本数据,这给出了 72+1
的结果,我认为这是正确的。