使用MDX查询列出维度成员

时间:2011-06-07 14:33:51

标签: mdx ssas

有没有办法列出维度成员而不为每个成员提取默认度量?

4 个答案:

答案 0 :(得分:27)

您可以在相反的轴上选择任何内容:

SELECT
  { } on 0,
  { DESCENDANTS([Dimension].[Hierarchy]) } on 1
FROM [Cube]

选择空集可防止SSAS在相反的轴上添加默认度量。

答案 1 :(得分:1)

我以前没有数据查询的方式是:

WITH MEMBER Measures.Amount AS 0 
SELECT { 
   [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [-cubeName-]

但是在看了BIDS在SQL Profiler中的工作后,我了解了

SELECT { 
   [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [$-dimensionName-]

e.g。

SELECT { Organization.Organization.Members } ON COLUMNS FROM [$Organization]

不确定此路线是否存在意外的副作用,但如果您只是想将内容转储到层次结构而不用担心数据,那么这是另一种选择。

答案 2 :(得分:1)

您可以使用以下SQL语法而不是MDX从SQL Server 2008访问Magnus提到的目录视图(顺便提一下are documented here):

SELECT *
  FROM $system.MDSCHEMA_MEMBERS
 WHERE ...

Analysis Services理解的SQL是有限的:没有可能的连接,WHERE条件可能只包含通过AND连接的[HIERARCHY_UNIQUE_NAME] = '[Date].[Order Date]'等子句。不支持GROUP BY和ORDER BY。但是,您可以查询多维数据集元数据。

根据您用于访问Analysis Services的接口,可能存在一些问题,因为这些元数据以结果集格式返回,而不是以cellset格式返回。

答案 3 :(得分:0)

您可以使用ADOMD Catalog对象查询多维数据集,并找出它具有的度量/维度等。这根本不涉及MDX。