强制计算成员在聚合前在叶级别进行评估
Force calculated member to evaluate at leaf level before aggregation
我找到了这个解决方案:
with calculated member [Measures].[Test1]
as
iif (isleaf([Time].[Calendar].currentmember)),
[Measures].[Measure1]/[Measures].[Measure2],
Sum([Time].[Calendar].currentmember.children, [Measures].[Test1]))
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]
而且有效。
但我想知道是否可以有两个或更多的维度,并写成这样:
with calculated member [Measures].[Test1] as
iif (isleaf([Time].[Calendar].currentmember)) and isleaf([SecondDimension].[SecondDimensionHierarchy].currentmember),
[Measures].[Measure1]/[Measures].[Measure2],
**Sum([Time].[Calendar].currentmember.children, [Measures].[Test1])**)
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]
我试过了,我得到了正确的叶子结果,但较高成员的值为空 - 当我有两个层次结构时,我不知道如何写这个总和Sum([Time].[Calendar].currentmember.children, [Measures].[Test1])
。有可能吗?
我想我找到了解决方案:
with calculated member [Measures].[Test1] as
iif (isleaf([Time].[Calendar].currentmember)) and isleaf([SecondDimension].[SecondDimensionHierarchy].currentmember),
[Measures].[Measure1]/[Measures].[Measure2],
Sum((DESCENDANTS([Time].[Calendar].currentmember, , LEAVES) * DESCENDANTS([SecondDimension].[SecondDimensionHierarchy].currentmember, , LEAVES), [Measures].[Test1]))
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]
我找到了这个解决方案:
with calculated member [Measures].[Test1]
as
iif (isleaf([Time].[Calendar].currentmember)),
[Measures].[Measure1]/[Measures].[Measure2],
Sum([Time].[Calendar].currentmember.children, [Measures].[Test1]))
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]
而且有效。
但我想知道是否可以有两个或更多的维度,并写成这样:
with calculated member [Measures].[Test1] as
iif (isleaf([Time].[Calendar].currentmember)) and isleaf([SecondDimension].[SecondDimensionHierarchy].currentmember),
[Measures].[Measure1]/[Measures].[Measure2],
**Sum([Time].[Calendar].currentmember.children, [Measures].[Test1])**)
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]
我试过了,我得到了正确的叶子结果,但较高成员的值为空 - 当我有两个层次结构时,我不知道如何写这个总和Sum([Time].[Calendar].currentmember.children, [Measures].[Test1])
。有可能吗?
我想我找到了解决方案:
with calculated member [Measures].[Test1] as
iif (isleaf([Time].[Calendar].currentmember)) and isleaf([SecondDimension].[SecondDimensionHierarchy].currentmember),
[Measures].[Measure1]/[Measures].[Measure2],
Sum((DESCENDANTS([Time].[Calendar].currentmember, , LEAVES) * DESCENDANTS([SecondDimension].[SecondDimensionHierarchy].currentmember, , LEAVES), [Measures].[Test1]))
select Test1 on 0,
[Time].[Calendar]. members on 1
from
[MyCube]