我希望将所有客户端名称放在单个列的单独行中。 我在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]
答案 0 :(得分:1)
要使函数.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];
答案 1 :(得分:0)
你应该看看使用DESCENDANTS。如果您要查找的所有客户端都是层次结构中的叶子,那么这将起作用:
DESCENDANTS ([Client].[Client].MEMBERS,,LEAVES)