如何使用 MDX 获取不可见属性和用户定义的层次结构的名称?

Posted

技术标签:

【中文标题】如何使用 MDX 获取不可见属性和用户定义的层次结构的名称?【英文标题】:How to get the name of invisible attributes and user defined Hierarchies using MDX? 【发布时间】:2012-08-31 08:38:20 【问题描述】:

我有一个有一些尺寸的立方体。我有一个维度“产品”,其中隐藏了一些属性和用户定义的层次结构。我不知道隐藏了哪些属性。 有没有办法编写 MDX 来获取不可见的属性和用户定义的层次结构? 我可以通过其他方式得到这个名字。但我想知道如何使用 MDX。

【问题讨论】:

【参考方案1】:

http://msdn.microsoft.com/en-us/library/ms145613.aspx 给出了一个显示成员属性的示例查询:

WITH MEMBER [Measures].[Product List Price] AS
[Product].[Product].CurrentMember.Properties("List Price")
SELECT 
   [Measures].[Product List Price] on COLUMNS,
   [Product].[Product].MEMBERS  ON Rows
FROM [Adventure Works]

我现在无法自己测试它,但我假设您也可以编写 .Properties(0).Properties(1) 来按索引引用属性,因为您不知道名称。我不确定是否有办法从结果单元集中发现属性名称,抱歉。

【讨论】:

【参考方案2】:

我首先会为此查看 DMV,因为您真正关注的是元数据,而不是数据。

http://dwbi1.wordpress.com/2010/01/01/ssas-dmv-dynamic-management-view/

它们看起来像 SQL,但在 SQL Management Studio 的 MDX 窗口中运行,因此也将在 MSOLAP 连接中运行。

SELECT * FROM $system.mdschema_properties

这看起来是查询、成员的完整列表和标识可见的列。

看看你的效果如何。

【讨论】:

我知道元数据的方式。但是还有另一种方法可以使用纯 MDX 来获取它们。我想知道有没有人已经尝试过了。如果是的话是什么方法。

以上是关于如何使用 MDX 获取不可见属性和用户定义的层次结构的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如果当前成员有孩子,则展开用户层次结构 - MDX

OLAP SSAS MDX 如何获取先前选定/可见日期的度量值

使用 MDX 从层次结构中获取当前会计年度

如何使用 MDX 查询应用层次化和排序

具有多个属性层次结构的计算成员 - MDX

MDX 查询以根据其登录 ID 获取员工 ID