我有一個存儲過程,用於在日期中提取數據並加入去年的數據。問題是今年的數據沒有什麼可參考的,因爲2011年2月29日沒有。有沒有其他人遇到過這個問題?任何人有任何想法如何解決它?2月29日與前一年的2月28日比較
這裏是存儲過程:
SELECT
--b.Date_Rep AS Date_Rep,
SUM(b.AccountsCreatedThisYear) AS AccountsCreatedThisYearTot,
SUM(a.AccountsCreatedThisYear) AS AccountsCreatedLastYearTot,
FROM Report2011.dbo.T_Report_01 b WITH (NOLOCK) --This year
LEFT JOIN Report2011.dbo.T_Report_01 a WITH (NOLOCK) ON DATEADD(yyyy,-1,b.Date_Rep) = a.date_rep --Last year
WHERE (a.Date_Rep BETWEEN DATEADD(year, -1,@StartDate) AND DATEADD(year, -1,@EndDate))
爲什麼'LEFT JOIN'當'WHERE'條款會迫使它成爲一個內部聯接? 'DATEADD'不能創建無效的日期,所以它*是*加入的問題,但是到了「錯誤的」日期或什麼? – 2012-03-01 14:23:40
難道這不就是去年3月1日的比較嗎? – Greg 2012-03-01 14:25:06
@ J.B。我與J銅 - 你已經比較了今年28日至去年28日,所以沒有日期可以比較今年29日至今年的數據。 – Filburt 2012-03-01 14:27:39