mdx.在聚合之前从事实表中筛选值

  • 本文关键字:事实 筛选 mdx mdx mondrian
  • 更新时间 :
  • 英文 :


我有一个具有2个维度的简单立方体:Dim1, Dim2和一个度量值-值(aggregator = sum)我需要通过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聚合。好的。

下一步创建calculate measure:

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]的非聚合值来过滤单元格呢?价值,即实际值从数据库?

只能根据维度中包含的成员进行筛选。如果你想过滤某些东西,它必须在多维数据集中可用。因此,您可能需要将一些列作为属性添加到其中一个维度。

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

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

最新更新