SSRS 2016找到第二最低/第二最高

时间:2018-06-26 02:51:08

标签: reporting-services visual-studio-2017 ssrs-2016

我想在我的行中找到第二个最小数字。 我可以通过内置表达式来完成Min和Max。

有关SSRS的更多信息,它是从SSAS数据源加载的。

在SSRS设计中,我遵循Chris的步骤

1。)将自定义代码放入报表属性

2。)将表达式输入到两个单独的列中(setMinMaxReset和setMinMax): = Code.setMinMaxReset(Fields!ID_AverageChangeRevenue_Value.Value) = Code.setMinMax(Fields!ID_AverageChangeRevenue_Value.Value)

SSRS design

3。)= code.min2也被输入到MIN2列中

与MAX2相同

但是结果不正确。谢谢您的帮助

SSRS Review

1 个答案:

答案 0 :(得分:1)

您可以在报表中使用自定义代码将min2和max2存储在变量中(以避免与我将变量声明为public的多个get / set函数混淆)

Public Dim max1 As Integer
Public Dim max2 As Integer
Public Dim min1 As Integer
Public Dim min2 As Integer

Public Function setMinMax(ByVal v As Integer)  As Integer

If max1=0 Then
max1 = v
ElseIf v>max1 Then
max2 = max1
max1 = v
ElseIf v<max1 And v>max2 Then
max2 = v
End If

If min1 = 0 Then
min1 = v
ElseIf v < min1 Then
min2 = min1
min1 = v
Elseif min2=0
min2 = v
ElseIf v<min2
min2 = v
End If

Return v

End Function


Public Function resetMinMax(ByVal s As String) As String 
    max1 = 0
    max2 = 0
    min1 = 0
    min2 = 0

Return s

End Function

对于每个行组(绿色),您将使用resetMinMax传递组字符串作为参数。该函数将初始化每个组行的值并显示组名

=Code.resetMinMax(Fields!r.Value)

对于每个值单元格(蓝色),您将使用setMinMax并将值作为参数传递。该函数将进行最小/最大计算并显示参数值

=Code.setMinMax(Sum(Fields!v.Value))

对于最小值和最大值,只需调用每个变量

= Code.max1
= Code.max2
= Code.min1
= Code.min2

enter image description here

enter image description here