我需要将计算分为三组: - 仅适用于基础细胞(叶子) - 适用于所有细胞 - 仅适用于合并单元格(上层级别的单元格) 例如,我有层次结构:Year-Quarter-Month。 在“月”中的此层次结构的基本单元格,并在“年”和“季度”中合并单元格。
对于基本单元格,我可以写这个“范围”:
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;
因为有许多维度和层次结构级别,所以必须对所有维度应用计算。 也许有一个简单的方法来解决我的问题?
答案 0 :(得分:2)
您可以在SCOPE
的子多维数据集表达式中使用MDX函数。
假设您的 Year-Quarter-Month 用户层次结构具有年, Quarter 和 Month 级别,您可以使用以下表达式来解决 Month 级别以上的级别。
SCOPE ( [Measures].[Value]
, [DimProducts].[Name].[Donut]
, Descendants( [DimTime].[Year-Quarter-Month].[All]
, [DimTime].[Year-Quarter-Month].[Quarter]
, SELF_AND_BEFORE
)
);
...
END SCOPE;
参考: