我在SSRS报告中使用了以下自定义函数,以便使用LookUpSet函数计算平均值。我在返回的集合中有许多结果为null。目前,此功能将这些值设为0并增加计数。我如何修改它以排除0值,以便它只是跳过它们并保持计数相同。即。只是将它们完全从返回的数据集中排除?
Function AvgLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
Dim ct as Integer = New Integer()
Dim Avg as Decimal = New Decimal()
suma = 0
ct = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
ct += 1
Next
Avg = suma / ct
If (ct = 0) Then return 0 else return Avg
End Function
答案 0 :(得分:0)
似乎最简单的方法是在循环中添加IF语句。这假设它将NULLS转换为0并且您没有所需的0值。
For Each item As Object In items
IF Convert.ToDecimal(item) <> 0
suma += Convert.ToDecimal(item)
ct += 1
ENDIF
Next