无论在MDX Statement中应用什么过滤器,都要选择总量

时间:2014-05-15 08:14:12

标签: mdx olap

我有一些措施,让我们说[措施]。[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吗?

1 个答案:

答案 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]