मेरे पास एक संग्रहित प्रक्रिया है जो डेटा खींचती है और तिथि पर पिछले वर्ष के डेटा में शामिल हो जाती है। समस्या यह है कि चालू वर्ष के आंकड़ों में शामिल होने के लिए कुछ भी नहीं है क्योंकि 2011 में 2 9 फरवरी नहीं था। क्या किसी और ने इस समस्या का अनुभव किया है? किसी के पास इस बारे में कोई विचार है कि इसके आसपास कैसे काम करना है?फरवरी 2 9 पिछले वर्ष की फरवरी 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))
क्यों 'वाम JOIN' जब' WHERE' खंड बनने के लिए यह बाध्य करेगा एक आंतरिक में शामिल होने? 'DATEADD' अमान्य तिथियां नहीं बना सकता है, तो क्या यह मुद्दा है कि यह * शामिल है, लेकिन" गलत "तिथि या क्या? –
क्या यह सिर्फ पिछले साल के 1 मार्च से इसकी तुलना नहीं करेगा? – Greg
@ जेबी। मैं जे कॉपर के साथ हूं - आप 28 साल से पिछले साल 28 वें साल की तुलना कर चुके हैं, इसलिए इस साल 2 9वीं से डेटा की तुलना करने की कोई तारीख नहीं है। – Filburt