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 '不等于'的主要内容,如果未能解决你的问题,请参考以下文章
SSAS MDX WHERE 子句语法 - 从同一层次结构中过滤多个值
为啥以及何时在 WHERE 子句中带有条件的 LEFT JOIN 不等于在 ON 中的相同 LEFT JOIN? [复制]