0

我在 MSSQL(针对 SAP Business One)中创建了一个查询,以将给定日期范围(使用 [日期] 和 [日期] 之间)的销售额和利润与去年同一日期范围的销售额和利润进行比较,但是我不知道该怎么做。

我对日期范围使用以下代码:

WHERE t1.docdate between '[%1]' and '[%2]'

谢谢你

4

2 回答 2

0

如果您想要去年相同日期范围的数据,您有两种选择:

WHERE dateadd(year, 1, t1.docdate) between '[%1]' and '[%2]'

或者

WHERE t1.docdate between dateadd(year, -1, '[%1]') and dateadd(year, -1, '[%2]')

笔记:

  • 在第一种情况下,您是在日期上一年,而不是减一年。
  • 参数看起来很奇怪,但我对 SAP 格式不熟悉。
  • 我非常同意亚伦关于避免between约会的观点。但是,我将按原样保留逻辑,因为这就是 oP 提出问题的方式。
于 2017-01-04T17:15:36.733 回答
0
dateadd(year,-1,[date])

在 SQL Server 中使用 DATEADD 添加和减去日期

请注意使用的含义between,如下所示:要踢的坏习惯:错误处理日期/范围查询 - Aaron Bertrand - 2009-10-16

于 2017-01-04T16:48:59.360 回答