无论MDX语句中应用了什么过滤器,都选择“总金额”

无论MDX语句中应用了什么过滤器,都选择“总金额”,mdx,olap,Mdx,Olap,我有一些度量,比如说[Measure][m1]。 此外,还有具有3个不同层次结构[H1]、[H2]、[H3]的i维[Dim1]。 层次结构只是某种类别,所以H1上m1的和等于H2和H3上m1的和 我想计算总比率,所以我想设置一个过滤器作为WHERE表达式。在同一个语句中,我想得到Dim1的所有项上所有m1的总和,无论使用什么过滤器 问题是,当我应用过滤器时,一切都会受到影响。尽管应用了过滤器,我还是希望能够计算m1的未受影响的和 select { [Measures].[m1] , <ca

我有一些度量,比如说[Measure][m1]。 此外,还有具有3个不同层次结构[H1]、[H2]、[H3]的i维[Dim1]。 层次结构只是某种类别,所以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
选择{[Measures].[m1],}
在0
来自MyCube
因此,在上面的语句中,两列将打印相同的数字,因为我还没有应用过滤器

select { [Measures].[m1] , <calculated sum of any item in Dim1 without the WHERE filter> } 
on 0
from MyCube
where [OtherDim].[Type].&[specialType]
选择{[Measures].[m1],}
在0
来自MyCube
其中[OtherDim].[Type].&[specialType]
在上面的语句中,第一列应应用过滤器,但第二列仍应显示所有Dim1上的m1总量


仅通过使用MDX,在没有进一步维度的情况下,这是否可能?

您需要一个计算成员:

with member [Measures].[Total] as ( [Measures].[m1], [OtherDim].[Type].[All Types] )
select { [Measures].[m1] , [Measures].[Total] } on 0
from MyCube
where [OtherDim].[Type].&[specialType]

这是可行的,问题是当我有两个过滤器时,比如where([OtherDim].[Type].&[specialType],[OtherDim].[Type2].&specialType2]),那么Total仍然会过滤第二个条件。[OtherDim].[All]不起作用,所以我不知道如何绕过任意数量的过滤器我真是个傻瓜:(将我的其他东西添加到元组中就像一个符咒,谢谢你,先生!即([Measures].[m1],[OtherDim].[Type].[All Type],[OtherDim].[Type2].[All Type])这始终是相同的原则。Where元组将影响查询中的所有内容。如果要在任何给定单元格中使用All成员,则需要显式声明它。