3

如果我运行以下代码(来自 MS 示例),则使用 Adventure works Cube:

with 
Member [Measures].[Internet Sales Amount - Range]
AS aggregate ( [Date].[Fiscal].[Date].&[20080430]:[Date].[Fiscal].[Date].&[20080502] , [Measures].[Internet Sales Amount] )

SELECT
{ [Measures].[Internet Sales Amount - Range] } ON COLUMNS,
{ [Product].[Category].Members } ON ROWS
FROM
[Adventure Works]

你会得到正确的结果。

但是,当我在计算选项卡中通过 SCOPE 命令实现类似功能时:

scope ([Product].[Category], [Measures].[Internet Sales Amount]);

    this = aggregate ( [Date].[Fiscal].[Date].&[20080430]:[Date].[Fiscal].[Date].&[20080502] , [Measures].[Internet Sales Amount] );

end scope;

然后运行以下 mdx 查询:

SELECT
{ [Measures].[Internet Sales Amount] } ON COLUMNS,
{ [Product].[Category].Members } ON ROWS
FROM
[Adventure Works]

我得到了截然不同的结果。范围似乎忽略了日期范围或忽略了类别成员,我不确定是什么。在创建具有日期范围的新范围时,我的多维数据集遇到了类似的问题。

有谁知道范围是怎么回事?

4

1 回答 1

2

利用

CREATE MEMBER CurrentCube.[Measures].[Internet Sales Amount - Range2] AS NULL;

scope ([Measures].[Internet Sales Amount - Range2]);
    this = aggregate ( [Date].[Fiscal].[Date].&[20080430]:[Date].[Fiscal].[Date].&[20080502] , [Measures].[Internet Sales Amount] );
end scope;

scope否则,当您引用您在其SCOPE本身中使用的度量时,可能会出现无限递归。

于 2013-09-25T17:57:58.710 回答