spotfire上个月记录和上一季度记录的计算列

时间:2017-04-26 03:39:16

标签: spotfire

为了获取上个月的记录,我尝试了以下表达式:

If((Month([Site Date])=(Month(DateTimeNow()) - 1)) and (Year([Site Date])=Year(DateTimeNow())),1,0)

但是当DateTimeNow()是1月时,这会出现问题。由于年份将从2016年变为2017年,年度条件不满足,并且在获取记录方面会有一些差异。

我也遇到了与上一季度记录相同的问题。

如果有人帮我修复上述代码会很有帮助。

事先谢谢大家!

此致

桑托什

2 个答案:

答案 0 :(得分:0)

您是正确的,因为您需要检查年份和月份,但您需要使用DATEADD()来获取正确的值。使用此方法,您可以将其与上个月的年份和月份进行比较,无论它在日历上的位置如何。 E.g DateAdd('month',-1,Date(2017,01,26))将为12/26/2016

If(Month([Site Date])=Month(DateAdd("month",-1,DateTimeNow())) and Year([Site Date])=Year(DateAdd("month",-1,DateTimeNow())),1,0)

您可以通过强制DateTimeNow()到1月日期来测试。

If(Month([Site Date])=Month(DateAdd("month",-1,Date(2017,01,26))) and Year([Site Date])=Year(DateAdd("month",-1,Date(2017,01,26))),1,0)

答案 1 :(得分:0)

这如何:

case  
when Month(DateTimeNow())=1 then Date(Concatenate("12/1/",Year(Date(DateTimeNow())) - 1))
else Date(Concatenate(Month(Date(DateTimeNow())) - 1,"/1/",Year(Date(DateTimeNow()))))
END