where 子句中的 MDX '不等于'

Posted

技术标签:

【中文标题】where 子句中的 MDX \'不等于\'【英文标题】:MDX 'is not equal to' in where clausewhere 子句中的 MDX '不等于' 【发布时间】:2016-02-16 14:59:15 【问题描述】:

到目前为止,我想将所有年份的 [Net sales] 除以 [Year][Week],但我遇到了问题。

我写了两个查询,但都不起作用。

第一个是基本的,我只显示[Net sales] 除以周和年,这正是我想要的,但首先:即使[Net sales] 为空,我也会显示周和年,其次,有“所有' 不希望出现的 [Year][Week] 的成员。

如何过滤掉[All] 和空值?

实际查询:

select  
[Measures].[Net sales] on columns,
([Time].[Year].MEMBERS,
    [Time].[Week].MEMBERS ) on rows
from [Sales]
where ( 
[Department].[Department name].&[WRO], [Department].[Department name].&[KAT]);

第二次查询,根本不起作用。这是尝试过滤掉[Year][All] 成员。

select  
 [Measures].[Net sales]  on columns,
 [Time].[Week].MEMBERS  on rows
from [Sales]
where ( except([Time].[Year].MEMBERS, [Time].[Year].&[All]),
    [Department].[Department name].&[WRO], [Department].[Department name].&[KAT]);

总结:我只想显示净销售额除以周数。周应按年分组。

【问题讨论】:

【参考方案1】:

要过滤掉 [All] 成员,请使用 CHILDREN 而不是 MEMBERS。

要获得没有净销售额的周和年,请使用 NON EMPTY:

   NON EMPTY ([Time].[Year].CHILDREN,
        [Time].[Week].CHILDREN ) on rows

【讨论】:

以上是关于where 子句中的 MDX '不等于'的主要内容,如果未能解决你的问题,请参考以下文章

使用 where 子句 (MDX) 的 SSAS 计算度量

用 MDX 查询的日期范围子句中的现有成员替换不存在的成员

SSAS MDX WHERE 子句语法 - 从同一层次结构中过滤多个值

为啥以及何时在 WHERE 子句中带有条件的 LEFT JOIN 不等于在 ON 中的相同 LEFT JOIN? [复制]

三.SQL WHERE 子句(where)

5.WHERE 子句