MDX。在聚合之前从事实表中过滤值

时间:2014-07-01 14:40:56

标签: mdx mondrian

我有2个维度的简单立方体:Dim1,Dim2和一个度量 - 值(聚合器=总和)  我需要通过mdx获取交叉表:

select non empty [Dim2].members on 0, non empty [Measures].value on 1 
from [cube]

=>

      el1 el2 el3 el4

value 12  14  45  64 

此值由dim1聚合。确定。

接下来我创建计算度量:

with [Measures].value_filter as iif([Measures].value> 15, [Measures].value, null)
select non empty [Dim2].members on 0,
non empty [Measures].value_filter on 1
from [cube]

=>  我们得到了正确的结果:

     el3 el4 
value 45 64

但是,如何通过[Measures] .value的非聚合值过滤单元格,即数据库中的实际值?

1 个答案:

答案 0 :(得分:0)

您只能按维度中包含的成员进行过滤。如果要对某些内容进行过滤,则必须在多维数据集中提供。因此,您可能需要将一些列作为属性添加到您的某个维度。

假设您要使用维度Dim2的层次结构/属性Hier2的Member1作为过滤器,您将按如下方式进行过滤:

select non empty [Dim2].members on 0,
       [Measures].value on 1 
  from [cube]
 where ([Dim2].[Hier2].[Member1])