如何在单个列中获取维度的所有成员

How do get all the members of a dimension in a single column

我想在单列的不同行中获取所有客户名称。 我在 MDX

中试过这个
WITH MEMBER ClientName
AS [Client].[Client].CURRENTMEMBER.NAME

SELECT {[ClientName]} ON 0
FROM [UserActivity]

这为我提供了一个名为 "ClientName" 行的列,其中包含 "All" 值。我想要的是此列中的多行,每个客户名称一行。我该怎么做?

最终,我想要开始工作的是这样的......其中每个客户名称显示在第 0 列中,相应的度量显示在第 1 列中

WITH MEMBER ClientName
AS [Client].[Client].CURRENTMEMBER.NAME

SELECT {([ClientName], [Measures].[Total Engaged Users])} ON 0
FROM [UserActivity]

现在我知道了,如果我将我的维度放在 ROWS 上,这会起作用,但我不想这样做,因为我正在使用的客户端应用程序不遵守这一点

SELECT {[Client].[Client].Members} ON 0, {[Measures].[Total Engaged Users]} ON 1
FROM [UserActivity]

您应该考虑使用 DESCENDANTS。如果您要查找的所有客户都是层次结构中的叶子,这将起作用:

DESCENDANTS ([Client].[Client].MEMBERS,,LEAVES)

要使函数 .CurrentMember 发挥作用,它需要上下文,因此您需要在行中包含 [Client].[Client].MEMBERS

WITH 
  MEMBER [Measures].ClientName AS 
    [Client].[Client].CurrentMember.Name 
SELECT 
  {
    [Measures].[ClientName]
   ,[Measures].[Total Engaged Users]
  } ON 0
 ,[Client].[Client].MEMBERS ON 1
FROM [UserActivity];

如果客户端层次结构中有一些计算成员,那么 AllMembers 函数优于 Members:

WITH 
  MEMBER [Measures].ClientName AS 
    [Client].[Client].CurrentMember.Name 
SELECT 
  {
    [Measures].[ClientName]
   ,[Measures].[Total Engaged Users]
  } ON 0
 ,[Client].[Client].ALLMEMBERS ON 1
FROM [UserActivity];