gpt4 book ai didi

ssas - 上个月

转载 作者:行者123 更新时间:2023-12-04 04:50:46 26 4
gpt4 key购买 nike

以下返回我们月份集合中的最后一个成员:

TAIL([Date].[Date - Calendar Month].[Calendar Month],1)

我们的多维数据集包含截至昨天(包括昨天)的数据 - 因此,如果今天运行上述内容,它将返回成员 [July 2013] .

我想要 最后完成月份 所以如果今天(7 月 4 日)运行它应该返回 [June 2013] .

不确定这是否会增加一些额外的复杂性,但如果表达式在一个月的第一天运行,那么层次结构中的最后一个成员实际上将等于最后完成的月份。

所以有时最后一个完成的月份是最后一个成员,有时它是下一个但最后一个成员,在层次结构 [Calendar Month] 中。

有没有一种万无一失的方式来编码这个表达式?

最佳答案

您可以轻松确定“现在”是否为每月的第一天,如下所示:

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] 层次结构,但也许使用 lastChild 和 lastChild.prevMember 会更有效......

[编辑] Tail( ... )(n) 检索由 Tail 返回的集合的第 n 个元素 - 这是 item(n) 的快捷方式

[编辑] 假设月份层次结构在所有成员下是平的: [Calendar Month].[All].lastChild 将执行与 Tail() 和 lastChild.prevMember 相同的操作,以获得最后一个之前的。

关于ssas - 上个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17469916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com