Reporting services 计算SSRS中的中值
我们需要能够计算一组统计回报数字的中值——特别是某一日期范围内每份合同的回答数字的中值 数据存储在一个共享数据集中,供报表生成器使用,该共享数据集用于多个合同报表,因此无法对其进行更新。所使用的共享数据集确保了合同报告之间的一致性,因此必须使用 对此已经有了答案(例如&),但这些要求隐藏行/列或使用图形中的计算字段Reporting services 计算SSRS中的中值,reporting-services,ssrs-2012,median,reportbuilder3.0,Reporting Services,Ssrs 2012,Median,Reportbuilder3.0,我们需要能够计算一组统计回报数字的中值——特别是某一日期范围内每份合同的回答数字的中值 数据存储在一个共享数据集中,供报表生成器使用,该共享数据集用于多个合同报表,因此无法对其进行更新。所使用的共享数据集确保了合同报告之间的一致性,因此必须使用 对此已经有了答案(例如&),但这些要求隐藏行/列或使用图形中的计算字段 我们需要一个答案,允许我们使用共享数据集/存储过程,并在SSRS/报表生成器中计算中值。此自定义代码可以添加到报表中: Public Shared Function Median(B
我们需要一个答案,允许我们使用共享数据集/存储过程,并在SSRS/报表生成器中计算中值。此自定义代码可以添加到报表中:
Public Shared Function Median(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim counter As Integer = items.Length
If counter = 0 Then
Return 0
End If
System.Array.Sort(items)
If counter Mod 2 = 1 Then
Return items(CInt((counter / 2) - 0.5))
Else
Dim FirstIndex As Integer = counter \ 2
Dim SecondIndex As Integer = FirstIndex - 1
Dim FirstValue As Integer = items(FirstIndex)
Dim SecondValue As Integer = items(SecondIndex)
Return (FirstValue + SecondValue) / 2
End If
End Function
然后可以使用以下=code.Median(Lookupset(Fields!Contract.Value,Fields!Contract.Value,Fields!Answered.Value,“DS\u CallData\u LKP”))调用它
在本例中,数据集“DS_CallData_LKP”为整个报告供电,但再次被引用以获取要为中值排序的值列表。使用lookuper()
而不是经常看到的隐藏行/列方法,有助于使报表更易于以后编辑。我不明白lookuper中的三个参数代表什么。我假设前两个(合同)都引用了我们计算中位数的字段,但第三个(回答)是什么?我记得LookUnder()是“匹配这个,用这个,给我这个,从这里开始”。所以在本例中,我将数据集A中的合同与数据集B中的合同进行匹配,并从数据集B返回应答。我们计算匹配合同后应答的中位数。