5

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

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

[MyDimension].[All].Children

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

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

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

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

4

2 回答 2

1

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

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

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

不知道它是否适用于 Excel 案例,但在一般的 MDX 案例中,这是我多年来一直使用的技术,可以让我的 PC 属性成为默认属性。

于 2016-06-29T15:54:41.710 回答
0

该功能StripCalculatedMembers对您的情况有帮助吗?
我认为它可能会删除比您想要删除的更多。

MSDN 参考在这里:https ://msdn.microsoft.com/en-us/library/ms145983.aspx

于 2015-06-09T09:16:17.067 回答