Tengo un procedimiento almacenado que extrae datos y se une a los datos del año pasado en la Fecha. El problema es que los datos del año actual no tienen nada para unirse porque no hubo 29 de febrero de 2011. ¿Alguien más ha experimentado este problema? ¿Alguien tiene alguna idea sobre cómo solucionarlo?29 de febrero en comparación con el 28 de febrero del año anterior
Aquí es el procedimiento almacenado:
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))
Por qué 'IZQUIERDA JOIN' cuando la cláusula' WHERE' obligará a que se convierta en una unión interna? 'DATEADD' no puede crear fechas inválidas, entonces ¿el problema es que * se * une, pero a la fecha" incorrecta "o qué? –
¿no sería esto simplemente compararlo con el 1 de marzo del año pasado? – Greg
@ J.B. Estoy con J Copper: ya comparas este año 28 al año pasado 28, así que no hay fecha en la que puedas comparar los datos de este año 29 a. – Filburt