在SSRS的度量组中使用多值参数

时间:2013-08-23 13:22:52

标签: reporting-services ssrs-2008 mdx

我有一份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)
    )

它有效

所以看来我不能用多值参数限制测量。怎么样?

1 个答案:

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