2014-07-24 80 views
0

我每個星期一運行一個月的日期以報告上個星期五的活動。結束日期今天是-3。月月日月份結束時的參數

我的問題發生在-3日期是在一個新月。例如,2014年7月31日是本月的最後一天。我希望我的報告將於8月4日星期一運行,以便於7月1日至7月31日返回。

現在發生的事情是,因爲我的-3,它會返回報告Aug1 -Aug 1.我需要邏輯來承認我想要上個月。可能使用每個星期一的月份在結束日期之前?

另外,我不確定我的問題是在開始日期還是結束日期。我希望這份報告能夠在SSRS訂閱上運行,但我一直無法提出解決方案。

非常感謝您的建議。

當前設置:

Start = DateAdd(DateInterval.Month, 
     DateDiff(DateInterval.Month,#01/01/1900#,Now()),#01/01/1900#) 
End = DateAdd("d", -3, Today()) 
+0

如果條件爲真,則可以在SSRS表達式中使用IIF()來執行一個公式,而如果爲false,則可以使用其他公式。這樣,你可以使用任何你想要決定的截點,如果你想要MTD或上個月。 –

+0

「...月份在新月份結束時」 – KekuSemau

回答

0

你可能要考慮,如果它總是在星期一運行,是不使開始日期和結束日期參數的另一種選擇。您可以將它們作爲您的過程中的變量,從GETDATE()計算出來。

SELECT @EndDate = DATEADD(day,-3,GETDATE()) 
SELECT @StartDate = DATEADD(month, DATEDIFF(month, 0, @EndDate), 0)