我的立方体中有以下脚本:
/*
The CALCULATE command controls the aggregation of leaf cells in the cube.
If the CALCULATE command is deleted or modified, the data within the cube is affected.
You should edit this command only if you manually specify how the cube is aggregated.
*/
CALCULATE;
CREATE MEMBER CURRENTCUBE.[Measures].[Scope TEST]
AS
STRTOVALUE(2),
VISIBLE = 1;
SCOPE([Locations].[LocationName].Members, [Measures].[Scope TEST]);
this = SUM([Locations].CURRENTMEMBER, STRTOVALUE(1));
END SCOPE;
我希望脚本能做什么,如下所示;
我有5个位置,所以当我添加度量scope test
时,它应该在每行后显示1
。这很好。
这是我尝试使用的脚本的简化版本。在那个脚本中,我还没有使用范围,但是使用范围声明或没有范围声明,因为没有差异,所以它并不重要。
如果有人能指出我正确的方向,任何帮助将不胜感激。
答案 0 :(得分:1)
你在总计中看到1吗?如果是这样,可能是SUM(ALL,1)= 1,因为ALL成员在某种程度上算作单个成员。
尝试将所有成员的后代添加到这样的计数中,让我们知道它是如何进行的:
SCOPE([Locations].[LocationName].Members, [Measures].[Scope TEST]);
this = SUM(DESCENDANTS([Locations].CURRENTMEMBER, , AFTER), STRTOVALUE(1));
END SCOPE;
Descendants函数将返回后代集,因此All成员将为该集合评估其所有子节点(成员)。所以你会得到五个成员,总结一下每个成员应该给你5号。