【问题标题】:mdx. Filter values from fact table before aggregatemdx。在聚合之前从事实表中过滤值
【发布时间】:2014-07-01 14:40:56
【问题描述】:

我有一个具有 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 的非聚合值(即数据库中的实际值)过滤单元格?

【问题讨论】:

    标签: mdx mondrian


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多