Tôi có một thủ tục được lưu trữ để lấy dữ liệu và tham gia dữ liệu của năm ngoái vào Ngày. Vấn đề là dữ liệu năm hiện tại không có gì để tham gia vì không có ngày 29 tháng 2 năm 2011. Có ai khác gặp phải vấn đề này không? Bất cứ ai có bất kỳ ý tưởng về cách làm việc xung quanh nó?ngày 29 tháng 2 so với ngày 28 tháng 2 của năm trước
Đây là thủ tục lưu trữ:
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))
Tại sao 'LEFT JOIN' khi' WHERE' khoản sẽ buộc nó để trở thành một bên tham gia? 'DATEADD' không thể tạo ngày không hợp lệ, do đó, vấn đề là * * tham gia, nhưng đến ngày" sai "hoặc cái gì? –
sẽ không chỉ so sánh nó với ngày 01 tháng 3 năm ngoái? – Greg
@ J.B. Tôi với J Copper - Bạn đã so sánh 28 năm này với năm ngoái 28 vì vậy không có ngày nào bạn có thể so sánh dữ liệu từ năm thứ 29 này đến năm kia. – Filburt