修改SSRS中的Avg lookupset以删除null

时间:2015-08-02 08:28:58

标签: vb.net reporting-services

我在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 

1 个答案:

答案 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