以下内容返回我们的月份中的最后一个成员:
TAIL([Date].[Date - Calendar Month].[Calendar Month],1)
我们的多维数据集包含昨天(包括昨天)的数据 - 因此,如果今天运行上述数据,则会返回成员[July 2013]
。
我想要上次完成的月份,所以如果今天(7月4日)运行,它应该返回[June 2013]
。
不确定这是否会增加一些额外的复杂性,但如果表达式在一个月的第一天运行,那么层次结构中的最后一个成员实际上将等于上一个完整月。
所以有时候最后一个完成的月份是最后一个成员,有时它是下一个但是最后一个成员,在层次结构中[Calendar Month]
这种表达式是否有一种简单的编码方式?
答案 0 :(得分:3)
如果“现在”是月份的第一天,您可以轻松确定如下:
IIF( Day(Now()) = 1, ... , ... )
所以你可以创建一个计算成员:
with member [Last Completed Month] as
IIF( Day(Now()) = 1,
TAIL([Date].[Date - Calendar Month].[Calendar Month],1)(0),
TAIL([Date].[Date - Calendar Month].[Calendar Month],2)(0)
)
关于[Calendar Month]层次结构的dunno,但是使用lastChild和lastChild.prevMember会更有效......
[edit] Tail(...)(n)检索Tail返回的集合的第n个元素 - 这是item(n)的快捷方式
[edit]想象月份层次结构在所有成员下是平的:[日历月]。[全部] .lastChild将与Tail()和lastChild.prevMember相同以获得最后一个。