0

MSSQL (SAP Business One 用) でクエリを作成して、特定の日付範囲 ([日付] と [日付] の間を使用) の売上と利益を、昨年の同じ日付範囲の売上と利益と比較していますが、私はそれを行う方法がわかりません。

日付範囲に次のコードを使用しています。

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

ありがとうございました

4

2 に答える 2

0

昨年と同じ日付範囲のデータが必要な場合は、次の2 つの選択肢があります。

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

また

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

ノート:

  • 最初の状況では、1年を減算するのではなく、日付に年を加算しています。
  • パラメータは奇妙に思えますが、私は 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 に答える