如何在矩阵中创建区间

How to create an interval in a matrix

我正在使用 SSRS 2008,我的源是一个立方体,我使用这个 MDX 查询:

 SELECT NON EMPTY { [Measures].[Val] } ON COLUMNS,
  NON EMPTY { ([DimCl].[Cl].[Cl].ALLMEMBERS,  
              [DDate].[Year].[Year].ALLMEMBERS ) } 
  ON ROWS FROM [DW]

我用以下数据创建了一个矩阵

        2014         2015
0        10           11
1        15           10
2        15           11
3        18           14 
4        10            8
5         5            5
6        12           10
7        10           15    
8        20           18

我需要做一个区间,结果矩阵应该是这样的:

2014         2015
<=2      40           32
]2;4]    28           22
]4;6]    17           15
>6       30           33

我在 SSRS 中尝试了 switch 语句,但出现错误,有人可以告诉我该怎么做吗?

谢谢

您可以通过在 Tablix 中创建一个组并使用 group by 表达式来定义您的范围来完成此操作。右键单击 tablix 中的详细信息行,然后 select 添加组 -> 父组。单击分组依据:框旁边的功能按钮。你会添加这样的东西作为你的表达:

=iif(Fields!Val.Value <= 2, "<=2", iif(Fields!Val.Value <=4, "]2;4]", iif(Fields!Val.Value <=6, "]4;6]", ">6")))

现在,在 tablix 的新组行中,您只需为您的值添加一个求和函数。您将得到每组的总和。

由于您对数据进行分组并基于此进行聚合 "interval",我建议您添加一个 Calculated 字段并在值中使用 Switch() 函数。

=开关(

字段!Val.Value <= 2, "<=2",

字段!Val.Value <= 4, "2-4",

字段!Val.Value <= 6, "4-6",

字段!Val.Value >6 , ">6" )

然后你可以只在这个字段上分组,并在 sum() 函数中指定组名作为范围