1

我需要将我的计算分为三组: - 仅适用于基本单元格(叶子) - 适用于所有单元格 - 仅适用于合并单元格(更高层次结构级别的单元格) 例如,我有层次结构:Year-Quarter -月。此层次结构的基本单元格在“月”中,并在“年”和“季度”中合并单元格。

对于基本单元,我可以写这个“范围”:

SCOPE (
   [Measures].[Value] ,
   [DimProducts].[Name].[Donut] , 
   [DimTime].[Month].CHILDREN       // month only
      );
THIS = [Measures].[Value]*2+100500;
END SCOPE;

而且我不知道如何编写合并单元格的“范围”?我不能为每个层次结构级别创建一个“范围”,例如:

SCOPE (
   [Measures].[Value] ,
   [DimProducts].[Name].[Donut] , 
   [DimTime].[Quarter].CHILDREN    // quarter only
      );
...
END SCOPE;
SCOPE (
   [Measures].[Value] ,
   [DimProducts].[Name].[Donut] , 
   [DimTime].[Year].CHILDREN       // year only
      );
...
END SCOPE;

因为有许多维度和层次结构级别,所以必须对所有这些进行计算。也许有一种简单的方法可以解决我的问题?

4

1 回答 1

2

SCOPE您可以在的子立方体表达式中使用 MDX 函数。

假设您的Year-Quarter-Month用户层次结构具有YearQuarterMonth级别,您可以使用以下表达式来处理高于Month级别的级别。

SCOPE ( [Measures].[Value]
      , [DimProducts].[Name].[Donut]
      , Descendants( [DimTime].[Year-Quarter-Month].[All]
                   , [DimTime].[Year-Quarter-Month].[Quarter]
                   , SELF_AND_BEFORE
                   )
      );
...
END SCOPE;

参考:

于 2012-05-25T18:12:00.180 回答