我有一份SSRS报告(2008 R2),它使用SSAS-cube作为数据源。在报告中,我有一个带有MDX查询的数据集。
在报告中,我已经定义了一些参数,其中一些参数允许多个值,而在MDX查询中,它们通常会限制数据集,如下所示:
WHERE (
STRTOMEMBER(@PARAM),
STRTOSET(@MULTI_VALUE_PARAM)
)
在其中一个数据集中,我需要在计算成员中使用value参数,如下所示:
MEMBER [Measures].[MY_MEASURE] AS (
[Measures].[MEASURE_FROM_MY_CUBE],
STRTOSET(@MULTI_VALUE_PARAM)
)
这不起作用,我不知道为什么?
如果我更改了参数,它不允许多个值,并使用它:
MEMBER [Measures].[MY_MEASURE] AS (
[Measures].[MEASURE_FROM_MY_CUBE],
STRTOMEMBER(@MULTI_VALUE_PARAM)
)
它有效
所以看来我不能用多值参数限制测量。怎么样?
答案 0 :(得分:1)
尝试
MEMBER [Measures].[MY_MEASURE] AS Aggregate(
STRTOSET(@MULTI_VALUE_PARAM),
[Measures].[MEASURE_FROM_MY_CUBE],
)
您使用的语法( [Measures].[MEASURE_FROM_MY_CUBE], <something> )
在MDX中定义元组,并且可能只包含每个层次结构中的单个成员。并且集合不是成员。 Aggregate
MDX函数将一个集合作为第一个参数,将表达式作为第二个参数,然后根据多维数据集定义聚合集合 - 在大多数情况下这是一个求和,但对于某些度量可能会有所不同。“ p>