我有一些措施,让我们说[措施]。[m1]。 进一步说,有维度[Dim1]有3个不同的层次[H1],[H2],[H3]。 Hierachies只是某种类别,因此H1上的m1之和等于H2和H3上的m1之和。
我想计算整体比率,所以我想将过滤器设置为WHERE表达式。在同一个语句中,我想得到Dim1所有项目中所有m1的总和,无论过滤器是什么。
问题是当我应用过滤器时,一切都会受到影响。我想以某种方式希望能够计算m1的未受影响的总和,尽管应用了过滤器。
select { [Measures].[m1] , <calculated sum of any item in Dim1 without the WHERE filter> }
on 0
from MyCube
因此,在上面的陈述中,两列都应打印相同的数字,因为我还没有应用过滤器
select { [Measures].[m1] , <calculated sum of any item in Dim1 without the WHERE filter> }
on 0
from MyCube
where [OtherDim].[Type].&[specialType]
在上面的语句中,第一列应该应用过滤器,但第二列仍然应该显示所有Dim1上的m1总量。
只有使用MDX才能实现没有进一步的Dimension吗?
答案 0 :(得分:1)
您需要一个计算成员:
with member [Measures].[Total] as ( [Measures].[m1], [OtherDim].[Type].[All Types] )
select { [Measures].[m1] , [Measures].[Total] } on 0
from MyCube
where [OtherDim].[Type].&[specialType]