我已经构建了一个DataCalculation维度,该维度应该基于时间计算。它应该是每个措施的总和,最后7天,平行期等。 我已经为过去7天建立了一个命名集:
CREATE SET CURRENTCUBE.[Last 7 days]
AS {
StrToMember(Cstr("[Dmn_Dates].[date calc].&["+
Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]"))
:
StrToMember(Cstr("[Dmn_Dates].[Date calc].&["+
Cstr(Format(Now()-7,"yyyy-MM-dd")) +"T00:00:00]"))
};
然后尝试在计算成员上使用它: 创建成员currentcube。[Dmn_ DateTool]。[日期工具]。[过去7天_] 如
aggregate(
{
StrToMember(Cstr("[Dmn_Dates].[date calc].&["+
Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]"))
:
StrToMember(Cstr("[Dmn_Dates].[Date calc].&["+
Cstr(Format(Now()-7,"yyyy-MM-dd")) +"T00:00:00]"))
}
,([Dmn_ DateTool].[Date Tool].[regular],measures.LeadCounter))
, visible = 1;
它不起作用。我得到的是一个计算的成员[过去7天]显示与常规值相同的值。
感谢阅读,直到这里。
答案 0 :(得分:1)
我会检查生成的集合有效性,并且它包含正确的成员;某事:
select [Last 7 days] on 0 ...
也许你要反转from / to:Now() - 7:Now而不是Now():Now() - 7 ...
答案 1 :(得分:1)
在member1:member2这样的表达式中使用Range operator时,member1必须按层次顺序位于member2之前。否则,范围运算符将返回一个空集。
此外,您必须确保像StrToMember(Cstr("[Dmn_Dates].[date calc].&["+Cstr(Format(Now(),"yyyy-MM-dd")) +"T00:00:00]"))
这样的表达式确实返回现有成员: null:null 返回空集。