Ssas MDX使用LinkMember和currentmember计算的成员在不同层次结构中未正确显示
我是SSAS和cubing的新手,在使用linkedmember函数时遇到了麻烦。我在事实表中创建了一个包含三个日期的多维数据集(基本上是累积快照粒度)。每一行代表一个客户机,然后是开始日期、结束日期和首次访问日期。每个日期都有一个通过角色扮演成员连接到dates表的相应维度。我希望使用连接到startdate的dates维度作为用户的主要日期维度。我能够使用以下函数为活动客户端创建计算成员Ssas MDX使用LinkMember和currentmember计算的成员在不同层次结构中未正确显示,ssas,mdx,Ssas,Mdx,我是SSAS和cubing的新手,在使用linkedmember函数时遇到了麻烦。我在事实表中创建了一个包含三个日期的多维数据集(基本上是累积快照粒度)。每一行代表一个客户机,然后是开始日期、结束日期和首次访问日期。每个日期都有一个通过角色扮演成员连接到dates表的相应维度。我希望使用连接到startdate的dates维度作为用户的主要日期维度。我能够使用以下函数为活动客户端创建计算成员 AGGREGATE( {NULL:[Dates].[Year - Quarter -
AGGREGATE(
{NULL:[Dates].[Year - Quarter - Month - Date].currentmember}
* {LINKMEMBER([Dates].[Year - Quarter - Month - Date].currentmember,[EndDate].[Year - Quarter - Month - Date]):NULL}
, [Measures].[ClientCount])
我现在正在为这段时间内第一次访问的客户创建计算的度量。我试过这个等式:
(Measures.clientcount,ROOT(dates),
linkmember(dates.[Year - Quarter - Month - Date].currentmember,
[FirstVisit].[Year - Quarter - Month - Date])
)
在年级别上是正确的,但是在月级别上有错误。对于一月,它显示一年的总和,然后从一个季度开始的每个月,它显示一个季度的总和。其他月份(如2月和3月)是正确的。我的理解是,这是由当前成员仅评估一次或全部评估造成的。有解决办法吗?终于找到了解决办法
MEMBER Measures.NewlyEnrolled AS
(Measures.clientcount,root(Dates),LINKMEMBER([Dates].[Year - Quarter - Month - Date].currentmember,
CASE
WHEN [Dates].[Year - Quarter - Month - Date].currentmember.level is [Dates].[Year - Quarter - Month - Date].[Year]
THEN [FirstVisit].[Year]
WHEN [Dates].[Year - Quarter - Month - Date].currentmember.level is [Dates].[Year - Quarter - Month - Date].[Quarter]
THEN [FirstVisit].[Quarter]
WHEN [Dates].[Year - Quarter - Month - Date].currentmember.level is [Dates].[Year - Quarter - Month - Date].[Month]
THEN [FirstVisit].[Month]
WHEN [Dates].[Year - Quarter - Month - Date].currentmember.level is [Dates].[Year - Quarter - Month - Date].[Day]
THEN [FirstVisit].[Day]
END ))