MDX语句,返回没什么(MDX Statement Returning Nothing)

2019-10-19 14:23发布

我有一个名为维度ExDimension 1个称为单一属性ExAttribute 。 我现在有在2名维成员与一起unknownmember与它的数据。 当我运行下面的MDX,我什么也没有回来,我不明白为什么。 谁能给我上哪里找一个方向?

SELECT 
{
    [ExDimension].[ExAttribute].CHILDREN
} 
DIMENSION PROPERTIES [ExDimension].[ExAttribute].[Attribute Code], 
                     [ExDimension].[ExAttribute].[Company], 
                     [ExDimension].[ExAttribute].[Is Current], 
                     [ExDimension].[ExAttribute].[Is Current Store], 
                     [ExDimension].[ExAttribute].[Is Current Chain], 
                     [ExDimension].[ExAttribute].[Attribute Label] 
ON 0 FROM [CR Data Warehouse]

Answer 1:

你的代码依赖于分析服务的隐式类型转换:

Children工作的部件上,看到的文档 。 你给它一个层次。 在这种情况下,SSAS执行一个隐含的类型转换到层次结构的默认成员。 一,即 编码

[ExDimension].[ExAttribute].CHILDREN

相当于

[ExDimension].[ExAttribute].DefaultMember.CHILDREN

在标准情况下,这个工程作为默认成员为All成员,它拥有所有“正常”的成员作为其子。 我会假设你ExAttribute层次有一个默认成员是不是All成员,但在底层的成员。 并且不生孩子,因此上述表达式返回空集。

假设你的意图是让成员ExAttribute除属性层次结构All成员,我的首选编码这种方式是使用

[ExDimension].[ExAttribute].[ExAttribute].Members

这不使用隐式类型转换,并使用ExAttribute的水平ExAttribute属性层次结构。 属性层次结构通常有两个层次: All级别只包含一个的All成员,并命名为喜欢的属性水平,这会直接从维度表来的所有成员。 可以有变化:如果您的属性属性设置IsAggregatable为false, All部件和All级别丢失,你可以计算的成员添加到两个级别。

你甚至可以使用

[ExDimension].[ExAttribute].[ExAttribute]

如,同样,还有一个隐式类型转换,如果你有一个水平,需要一套:此隐式类型转换适用的Members函数。 但我更愿意是明确的,尤其是在代码没有得到这么多的长这样。



文章来源: MDX Statement Returning Nothing