SSAS MDX NonEmpty问题

时间:2012-11-13 05:35:53

标签: ssas mdx

运行查询时遇到问题:

WITH MEMBER [Measures].[Test1] AS
(
SUM({NONEMPTY(EXISTING(([Product].[Product].[All].Children,[Month].[Month].[All].Children])),  [Measures].[Measure1])}, [Measures].[Measure1])
)
SELECT {[Measures].[Test1],[Measure1]} ON 0
([Product].[Product].Children) ON 1
FROM
[CUBE]
WHERE
([Month].[Month].[Jan]:[Month].[Month].[Dec])

根据我对MDX的有限了解,我假设[Test1]和[Measure1]应该返回相同的结果。

根据我在where子句中的内容(即我更改月份),即使[Measure1]有值,[Test1]也不会得到任何结果。

如果我将[Measure1]更改为同一事实表[Measure2]中的另一个度量,则不会出现此问题。

[Measure1]只是一个标准尺度,它不是计算或范围等。 我知道NONEMPTY不需要在那里,如果我删除它,查询将按预期工作,但我想知道为什么它似乎过滤掉非空数据。

2 个答案:

答案 0 :(得分:1)

Gents(和女士们),看起来这实际上是一个Microsoft Analysis Services Bug。 http://support.microsoft.com/kb/2606211 我安装了累积更新,它解决了这个问题。

答案 1 :(得分:0)

好吧,我会删除existing

表示,我认为没有理由使用它,这可能会导致错误
  

默认情况下,在包含集合成员的多维数据集的上下文中计算集合。 Existing关键字强制在当前上下文中评估指定的集合。

Source

您的查询似乎是在另一个上下文中执行的。