1

次のことを行う SQL で値を計算したいと思います。

ユーザーが入力した月のパラメーター (最初に情報を集計してから SSRS を使用する SQL を記述しています) が今日 (または最新のデータ入力) から 90 日以上経過している場合は、その月の値を使用します。それ以外の場合、月のパラメーターがレポートの実行日 (または最新のデータ入力) から 90 日以内の場合は、実際には 90 日経過した最新の値を使用します。たとえば、レポートを 8 月に実行し、月のパラメーターを 8 月と指定した場合、5 月の値が必要になります。月のパラメーターを 4 月に指定すると、4 月から 90 日が経過しているため、4 月の値が必要になります。これが簡潔でない場合はお詫び申し上げます。方向性が欲しいだけです。

乾杯。

4

1 に答える 1

0

コメントで @DanBracuk が示唆しているように、おそらく SSRS からパラメーターを取得し、T-SQL コードの現在の日付に基づいて更新する必要があります。

Parameters!Month.Valueとしてストアド プロシージャに渡されるSSRS パラメータがあるとします@Month

およびGETDATE()のような日付関数を使用して、必要に応じて調整できます。たとえば、次のようなストアド プロシージャ コードで調整できます。DATEDIFF()DATEADD()@Month

select @Month = case when datediff(dd, @Month, getdate()) > 90
  then @Month
  else dateadd(dd, -90, @Month)
  end

select *
from MyTable
where MyDate < @Month

要件を満たすように最初のステートメントを更新します。この時点では少しあいまいに思えます。問題を完全に理解していない場合は申し訳ありません。

于 2013-08-06T17:15:41.833 に答える