2014-09-11 50 views
1

我有两个几乎相似的MDX查询,在一个我使用.CHILDREN和其他.ALLMEMBERS中。第一个返回没有行,第二个返回两个。请帮我理解为什么!在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] 

--no行

----权利要求作为 - 计数 - - 全部637,350 --2010 637,350

只需加起来, AccidentDate是我的立方体[AW Cube]中的维度之一。 Year是一个自然的层级,而[Year-Quarter-Month-Date]是用户定义的层级。 [年 - 季 - 月 - 日]按以下方式创建:年 - >月 - >季 - >日期。因此,通过[事故日期] [年 - 月 - 日 - 日],[年],会员和[事故日期] [年] .MEMBERS可以获得'年数'。

+0

难道没有骑士来拯救可怜的灵魂吗? :( – SouravA 2014-09-12 10:13:23

回答

1

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