Ssas 在MDX中,引用All成员时如何选择层次结构?

Ssas 在MDX中,引用All成员时如何选择层次结构?,ssas,mdx,ssas-2012,Ssas,Mdx,Ssas 2012,我有一个多维数据集,其维度包含父子层次结构和几个不可见的属性。查询此维度的唯一方法是通过父子层次结构 我的问题是如何解决以下MDX名称: [MyDimension].[All].Children 在这种情况下,选择了一个不可见属性(解析为:[MyDimension].[MyInvisibleAttributesEndOnlyForOrdering].[All].Children),这会导致意外结果 在Excel中使用CUBEMEMBER/CUBEVALUE函数时会出现此问题。由于Excel不考

我有一个多维数据集,其维度包含父子层次结构和几个不可见的属性。查询此维度的唯一方法是通过父子层次结构

我的问题是如何解决以下MDX名称:

[MyDimension].[All].Children
在这种情况下,选择了一个不可见属性(解析为:
[MyDimension].[MyInvisibleAttributesEndOnlyForOrdering].[All].Children
),这会导致意外结果

在Excel中使用
CUBEMEMBER/CUBEVALUE
函数时会出现此问题。由于Excel不考虑不可见属性,自动完成直接从
[MyDimension]
跳到
[MyDimension].[All]
,而不要求用户指定层次结构。当另一个属性可见时,它可以正常工作,因为Excel的“自动完成”强制用户选择一个层次结构,从而导致不明确的
[MyDimension].[MyParentChildHierarchy].[All].[MyCorrectMembers]

一种可能的解决方法是将所有不可见属性设置为不可聚合,这样一来,
[MyDimension].[all]
仅在我的父子层次结构的范围内才有意义,但我正在寻找一种更好、更通用的解决方案


提前感谢您对SSAS行为的任何解决方案或解释。

函数
stripeCalculatedMembers
是否对您的情况有所帮助?
我认为它可能会删除比您希望删除的更多的内容


MSDN引用在这里:

当SSAS猜测维度的属性层次结构时,我的观察结果是,它采用dimension.xml文件中定义的第一个属性层次结构

要查看/更改第一个属性(即Attributes元素的第一个子属性),需要将SSAS数据库导入Visual Studio项目,右键单击维度选择查看代码,然后向下滚动到Attributes元素。您可以复制/粘贴父-子属性并将其移动到顶部,所有事情开始时都是相同的。您的MDX应该针对该属性层次结构而不是(大概)关键属性进行解析

我假设Hierarchy元素在Hierarchys集合中的行为方式相同,但实际上还没有尝试过


不知道它在Excel案例中是否有效,但在一般MDX案例中,这是我多年来一直使用的一种技术,用于将我的p-C属性设置为默认属性。

您使用的是什么版本的Excel(包括SP)?我们使用的是Excel 2010 SP2我有一个类似的环境(SQL 2008 R2,Excel 2010)。我无法复制你的问题。是否仅当PC dim中唯一可见的层次结构是PC层次结构时才会发生这种情况?我的还有一个可见属性。确切地说,只有PC层次结构可见。如果另一个属性是可见的,它可以正常工作,因为Excel强制我在
CUBEMEMBER
函数中明确选择一个可见的层次结构。这表明这实际上是Excel公式自动完成的问题,而不是SSAS或MDX的问题。它还建议你可以通过添加一个可见的层次结构来解决这个问题。我担心这不会有帮助。此维度没有计算成员。实际上我不想删除成员,我希望Excel在引用[All]成员时使用适当的属性(我的父子层次结构),而不是隐藏的属性之一。如果我的问题还不清楚,请不要犹豫。