SSRS 上个月一年的第一天

1 date reporting-services

我有一份 SSRS 报告,应该显示截至上个月最后一天的日历 YTD 销售额。我在动态计算开始日期参数时遇到问题。

如果我在 12/15/2017 运行报告,则上个月的最后一天是 11/30,所以我想查看 1/1/2017-11/30/2017。如果我在 2018 年 1 月 15 日运行报告,则上个月的最后一天是 12/31,因此我希望查看 1/1/2017-12/31/2017。

对于开始日期,我使用Today.AddMonths(1-Today.month).AddDays(1-Today.day).AddYears(1-Today.year),它实际上只是根据以下内容返回当年的第一天报告的运行日期。除一月外,这在任何月份都适用。

当我使用该公式并在一月份运行报表时,它返回 1/1/2018 而不是 1/1/2017。

我意识到它不起作用的原因是因为我基于“今天”而不是上个月的最后一天进行计算,我只是不知道可以满足我需要的正确公式。

有人可以帮忙吗?

Ala*_*eld 5

要获取您的开始日期,请使用此...

=DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)
Run Code Online (Sandbox Code Playgroud)

这只是获取当前日期(在本例中为 2018-01-06),减去给出 2017-12-06 的月份,获取该日期的年份(2017),然后我们将月份和日期都设置为 1,最终给出我们 2017-01-01

如果我们在 2018 年 6 月 20 日运行此命令,我们将遵循相同的过程,减去一个月,给出 2018-05-20 得到年份 (2018),然后将月份和日期设置为 1,给出 2018-01-01

对于结束日期使用

=DateAdd("d",-(Day(today)), Today)
Run Code Online (Sandbox Code Playgroud)

在这里,我们只是从今天的日期中减去天数。我们减去的天数是今天的天数,因此对于 2018-01-06,我们减去 6 天,得到 2017-12-31 如果我们在 2018 年 6 月 20 日运行此操作,我们将遵循相同的过程,取 2018-06-20减去 20 天,得到 2018-05-31