使用Adventure工作Cube,如果我运行以下代码(来自MS示例):
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]
我得到了截然不同的结果。范围似乎忽略了日期范围或忽略了类别成员,我不确定是什么。在创建具有日期范围的新范围时,我在我的多维数据集上遇到类似的问题。
任何人都知道范围发生了什么?
答案 0 :(得分:1)
使用
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
内引用该度量时,可能会有无限递归。