我是SSAS和Cubing的新手,并且遇到了链接成员函数问题。我在事实表中创建了一个具有三个日期的多维数据集(基本上累积了快照粒度)。每行代表一个客户端,然后有一个startdate,enddate和firstvisit日期。每个日期都有一个相应的维度,通过角色扮演成员连接到日期表。我希望使用连接到startdate的日期维度作为用户的主要日期维度。我能够使用以下函数为活动客户端创建计算成员。
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])
)
在年级是正确的,但是在月份级别存在错误。对于1月份,它显示了年份的总和,然后每个月开始一个季度显示季度的总和。其他月份(例如2月和3月)是正确的。我的理解是,这是由当前成员仅评估一次或评估全部。有解决方法吗?
答案 0 :(得分:2)
终于找到了解决方法。
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 ))