Necesito hacer una tabla temporal que contenga rango de fechas, así como un par de columnas que contengan valores de marcador (0) para uso futuro. Las fechas que necesito son el primer día de cada mes entre $ startDate y $ endDate, donde estas variables pueden tener varios años de diferencia.¿Cómo puedo generar una tabla temporal llena de fechas en SQL Server 2000?
Mi instrucción SQL original, era la siguiente:
select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales
into #dates
from customer
group by dbo.FirstOfMonth(InsertDate)
"FirstOfMonth" es una función definida por el usuario que hice que más o menos hace lo que dice, volviendo el primer día del mes de la fecha prevista con la hora exactamente a la medianoche.
Esto produjo casi exactamente lo que necesitaba hasta que descubrí que había ocasionalmente lagunas en mis fechas en las que tenía unos meses si no había registros insertos. Como mi resultado aún debe tener los meses faltantes, necesito un enfoque diferente.
he añadido las siguientes declaraciones al procedimiento almacenado anticipar su necesidad para el rango de las fechas que necesito ...
declare $startDate set $startDate = select min(InsertDate) from customer
declare $endDate set $endDate = select max(InsertDate) from customer
... pero no tengo ni idea de qué hacer desde aquí.
Sé que esta pregunta es similar to this question pero, francamente, esa respuesta está por encima de mi cabeza (no suelo trabajar con SQL y cuando lo hago tiende a ser en versiones anteriores de SQL Server) y hay algunas diferencias menores que me están tirando.
Utilice [MASTER.dbo.SPT_VALUES] (http://www.sqlteam.com/forums/topic.asp?TOPIC_ID = 102936) para obtener una lista de números, y utilizar DATEADD a su vez, aquellos en los datetimes –