在MDX语句中使用.CHILDREN和.ALLMEMBERS时的结果差异

时间:2014-09-11 11:44:54

标签: sql sql-server ssas mdx ssas-2012

我有两个几乎相似的MDX查询,其中一个我正在使用.CHILDREN和其他.ALLMEMBERS。第一个不返回任何行,第二个返回两个。请帮助我理解为什么!

查询1

select 
[Measures].[Claim As Of - Count] on 0,
[Accident Date].[Year].allmembers on 1
from [AW Cube]
where [Accident Date].[Year-Quarter-Month-Date].[Year].&[2010]

--- 2行

查询2

select 
[Measures].[Claim As Of - Count] on 0,
[Accident Date].[Year].children on 1
from [AW Cube]
where [Accident Date].[Year-Quarter-Month-Date].[Year].&[2010]

- 没有行

----声称 - 计数 - 所有637,350 --2010 637,350

只是加起来, AccidentDate是我的立方体[AW Cube]中的尺寸之一。 Year是自然层次结构,而[Year-Quarter-Month-Date]是用户定义的层次结构。 [年 - 季 - 月 - 日]按以下方式创建:年 - >月--->季--->日期。所以'年'可以通过[事故日期]。[年 - 季 - 月 - 日]。[年]。成员和[事故日期]。[年] .MEMBERS。

1 个答案:

答案 0 :(得分:1)

嗯,我自己得到了答案。实际上每个.CHILDREN都会在内部翻译为.CURRENTMEMBER.CHILDREN现在,[Accident Date].[Year].&[2010]是用户定义的层次结构上切片器的对应值。在这里,[Accident Date].[Year].CHILDREN实际上被转换为[Accident Date].[Year].&[2010].CHILDREN,这基本上是一个空集。因此,瞧!空结果集!