私はこの権利を確実にしたいと思っています。私のレポートのこのセクションは、現在のMTDをデフォルトに設定されています。私がする必要があるのは、ユーザが終了日を変更した場合にMTDにレポートを設定することです。IF Month(@EndingDate)
を使用して現在の月でなかった場合は、終了日を使用していました月の初めに戻ります。SQL設定終了日に基づくMTD
Declare @startdate datetime
Declare @enddate datetime
--Declare @EndingDate datetime
--set @EndingDate = '11-15-2011'
IF Year(@EndingDate) = DATEADD(year,DATEDIFF(year,0, @EndingDate),0)
BEGIN
set @startdate = dateadd(month, datediff(month, 0, dateadd(day, datediff(day, 1, getdate()), 0)), 0)--BEGINNING OF CURRENT MONTH
set @enddate = dateadd(day, datediff(day, 0, getdate()), 0)--THROUGH CURRENT MONTH (TODAY)
END
ELSE
IF Year(@EndingDate) < DATEADD(year, DATEDIFF(year, 0, GetDate())+1, 0)-1
BEGIN
set @startdate = dateadd(m,datediff(m,0, @EndingDate),0)--Beginning of Month from @Enddate
set @enddate = @EndingDate
END
あなたが見ることができるように、私は終了日の年が今年かと一致するかどうかを確認するためにそれを切り替えた:私は2011年に入ったまではだから私はIF Year(@EndingDate)
を使用してこれに私のコードを変更しうまく働きましたそれに基づいてデータを取得します。
これは論理的な方法ですか?私の問題は、今年は正しいデータがすべて得られていることですが、昨年に戻ったときに特定のプラントのデータが失われています。私は別のレポートをチェックし、すべてのプラントのデータがあるはずですので、日付の比較が正しく設定されていることを確認したかったのです。
申し訳ありませんが、MTDは何ですか? –
今月の月... – msmucker0527
あなたは何をしようとしているのかはっきりしていません。これまで行ってきたことではなく、何をしようとしているのか詳細を教えてください。 – msmucker0527