2

我有一个使用 SSAS 立方体作为数据源的 SSRS 报告(2008 R2)。在报告中,我有一个带有 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)
    )

有用

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

4

1 回答 1

1

尝试

MEMBER [Measures].[MY_MEASURE] AS Aggregate(
    STRTOSET(@MULTI_VALUE_PARAM),
    [Measures].[MEASURE_FROM_MY_CUBE],
)

您使用的语法( [Measures].[MEASURE_FROM_MY_CUBE], <something> )在 MDX 中定义了一个元组,并且它可能只包含每个层次结构中的一个成员。并且集合不是成员。MDX 函数将Aggregate一个集合作为第一个参数,将一个表达式作为第二个参数,然后根据多维数据集定义聚合集合 - 在大多数情况下是求和,但对于某些度量可能会有所不同。

于 2013-08-23T20:01:37.953 回答