对OLAP多维数据集中的所有度量使用范围,但一个或多个选定的计算度量除外

时间:2018-05-02 13:55:22

标签: sql-server ssas mdx cube olap-cube

我创建了一个进行时间计算的范围。问题是我需要为大多数测量计算这些计算,并且对某些特殊测量没有任何作用。我知道我想要超出范围的措施(例如[Measures].[Stock Unit Close])。另外,计算该度量。 我尝试使用

scope(EXCEPT([Measures].allmembers, [Measures].[Stock Unit Close])); ...; end scope;

但它不起作用。它以此错误结束

  

遇到无法包含计算成员的集合。   MdxScript(Core)(1510,2)遇到一个不能包含计算成员的集合。   END SCOPE语句与开始的SCOPE语句不匹配。   MdxScript(Core)(1568,1)END SCOPE语句与开始的SCOPE语句不匹配。   MDX脚本中遇到一个或多个错误。

此外,此代码仅适用于自然度量,但不适用于计算度量。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我知道它并不完全是你想要的,因为你必须分别对所有测量组进行SCOPE。但至少不是每项措施。

这适用于来自度量组的自然和计算度量。

E.g。度量组名称是"激活",从SCOPE中排除一个度量。

scope(MeasureGroupMeasures("Activations")-[Measures].[Average Activation Amount]);
this=1;
end scope;

scope(EXCEPT(MeasureGroupMeasures("Activations"),[Measures].[Client Accommodation Amount]));
this=1;
end scope;

答案 1 :(得分:0)

您可以跳过单词SCOPE并执行您想要的操作:

(EXCEPT([Measures].allmembers, [Measures].[Stock Unit Close])) = 123;

这个技巧是一种隐藏的方式,可以同时对物理和计算的度量进行调整。