在我上个月试图用以下表达式显示的图中:
=If( [SH_historico_1.ANOMES] >= '$(=Max([SH_historico_1.ANOMES])-1)' and [SH_historico_1.ANOMES] <= '$(=Max([SH_historico_1.ANOMES]))', [SH_historico_1.ANOMES])
当我写[SH_historico_1.ANOMES]
时,我指的是句号,比如"YYYYMM"当我减去-1
时,我只是从子步骤1到,例如:202002-1=202001,所以有效,因为它会计算出正确的周期。
但是。。。如果月份是一月?YYYY01?示例202001-1=202000
00月号,它不存在。00应该是12。
所以我想知道,如果我把这个数字当作约会呢?我正在尝试使用Date()
函数,但有点卡住了。
如何使用正确的语法?
我认为的另一个解决方案是在编辑器代码中设置一些代码,但仍在开发这个想法。
欢迎任何帮助。
当您想添加/减去月份时,最好使用AddMonths((函数:AddMonths( DateField, NumberOfMonths)
。此功能将处理一月发行的
在您的情况下将是:=AddMonths(Max([SH_historico_1.ANOMES]), -1)
(正如您所看到的,月数可以是负数,它将从日期中减去月数(
还有一点建议:如果您计划在表达式中使用此计算,请考虑使用集合分析而不是if..then..else
语句。if
语句在表达式中使用时速度较慢,并且消耗更多资源