使用MDX查询列出维度成员

使用MDX查询列出维度成员,mdx,ssas,Mdx,Ssas,有没有一种方法可以列出维度成员而不获取每个成员的默认度量值?您可以在相反的轴上不选择任何内容: SELECT { } on 0, { DESCENDANTS([Dimension].[Hierarchy]) } on 1 FROM [Cube] 选择一个空集可防止SSA在相反的轴上添加默认度量值。您可以使用ADOMD目录对象来查询多维数据集,并找出它有哪些度量值/维度等。这根本不涉及MDX。您可以访问Magnus提到的目录视图(顺便说一下),从SQL Server 2008使用以下SQ

有没有一种方法可以列出维度成员而不获取每个成员的默认度量值?

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

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

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

您可以使用ADOMD
目录
对象来查询多维数据集,并找出它有哪些度量值/维度等。这根本不涉及MDX。

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

SELECT *
  FROM $system.MDSCHEMA_MEMBERS
 WHERE ...
AnalysisServices理解的SQL是有限的:没有可能的联接,
WHERE
条件可能只包含类似于
[HIERARCHY\u UNIQUE\u NAME]='[Date].[Order Date]'
的子句,这些子句通过and连接。不支持分组依据和订单依据。但是,您仍然可以查询多维数据集元数据


根据您用于访问Analysis Services的接口,可能会出现一些问题,因为这些元数据是以resultset格式返回的,而不是以cellset格式返回的。

我过去在没有数据的情况下进行查询的方式是:

WITH MEMBER Measures.Amount AS 0 
SELECT { 
   [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [-cubeName-]
但在观看了SQL Profiler中的投标工作后,我了解到

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


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

您是否在某个地方有一个链接来解释如何执行此操作?或者你可以发布一个代码示例吗?我不知道你在用什么语言!几年前我用经典的ASP来做这个。对于.NET,请尝试从这里开始,此答案与问题不符。这是一种很好的填充SSRS参数的方法,而无需用户等待主查询重新加载。您甚至可以将其稍微缩短一点:
null
是多余的,无论如何都会被MDX解析器删除,从而产生一个空集。@FrankPI,如果未在SSAS中选择相反的轴,则会添加默认度量值。此查询返回一个不同的结果-只返回您查询的轴,而不返回任何度量值。
null
肯定不是多余的。@Tullo
null
是多余的。但列轴上的空集不是。您可以编写(在我看来这更清楚)
选择0上的{},
SELECT { Organization.Organization.Members } ON COLUMNS FROM [$Organization]