【问题标题】:MDX Replace Range With FilterMDX 用过滤器替换范围
【发布时间】:2009-12-02 00:23:03
【问题描述】:

在查看以下答案时,我想用过滤器替换范围。

MDX - Concurrent calculations based on a "record time range"?

MDX 是:

with member [Measures].[TotalUsed] as sum({[Date].[YQM].&[20090501]:[Date].[YQM].&[20090907]}, [Measures].[Used])
select    {[Measures].[Total Used]}on columns,    
          {[Color].[Colors].[All].MEMBERS}on rows
from [Cube]

我正在尝试用这样的过滤器替换日期范围:

with member [Measures].[TotalUsed] as sum(FILTER([Date].[YQM], [Date].[YQM] < [Date].[YQM].&[20090907]), [Measures].[Used])
select    {[Measures].[Total Used]}oncolumns,
          {[Color].[Colors].[All].MEMBERS}on rows
from [Cube]

在比较值方面寻找什么条件语句?任何帮助都会很棒!

谢谢!

【问题讨论】:

    标签: filter range mdx


    【解决方案1】:

    Filter 语句需要一个 SET 和一个 EXPRESSION 来过滤。您可以将其放在 SUM 函数中。过滤器的表达式部分几乎可以是任何东西,但它必须为 SET 中的每个单元格计算为真/假。

    -- 过滤器(集合,表达式)

    不知道您的数据的结构有点困难,但您的语句最终可能会如下所示,在您的时间段内过滤少于 50 个“未使用”的行,然后将它们相加作为示例。

    `

    WITH MEMBER [Measures].[TotalUsed] 
     AS SUM (FILTER ( [Date].[YQM].members, [Measures].[UnUsed] > 50 ), 
                      [Measures].[Used] )
    
    SELECT    {[Measures].[Total Used]} ON COLUMNS,          
    {[Color].[Colors].[All].MEMBERS} ON ROWS 
    FROM [Cube] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 2018-05-15
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      相关资源
      最近更新 更多