Mostrar Datos por Fechas

30/01/2012 - 16:53 por rojaserick-g | Informe spam
¡ Hola !, comunidad,

Tengo un problema, estoy realizando una consulta en sql server 2008, en donde tengo un campo fecha, (datos que contiene desde 01-01-2010 a 31-01-2012). necesito mostrar en un datagridview la cantidad de fechas que contengo entre meses. por ejemplo en enero tengo 3 fechas, febrero 19 fechas etc..

esto a su vez le paso por parametros las fechas ingresadas en la interfaz de usuario que son fecha inicio y fecha fin, para (01-01-2010 a 31-01-2010) ingreso esas fechas y deberia contar cuantas fechas hay entre ese mes
 

Leer las respuestas

#1 rekreativo
10/02/2012 - 23:48 | Informe spam
rojaserick-g escribió el 30/01/2012 16:53 :
¡ Hola !, comunidad,

Tengo un problema, estoy realizando una consulta en sql server 2008, en donde
tengo un campo fecha, (datos que contiene desde 01-01-2010 a 31-01-2012).
necesito mostrar en un datagridview la cantidad de fechas que contengo entre
meses. por ejemplo en enero tengo 3 fechas, febrero 19 fechas etc..

esto a su vez le paso por parametros las fechas ingresadas en la interfaz de
usuario que son fecha inicio y fecha fin, para (01-01-2010 a 31-01-2010)
ingreso esas fechas y deberia contar cuantas fechas hay entre ese mes


No se que tan bueno sea esto pero se me ocurre algo así:

DECLARE @TBLMesAnio TABLE
(
MESANIO NVARCHAR(15)
)
-- obtenemos un distinct de los meses/año que hay en el rango
-- considerando que la fecha la tienes en campo datetime y formato dd/mm/yyyy
-- sino para eso lo convertimos a nvarchar (103) y obtenemos solo la parte mm/yyyy
INSERT INTO @TBLMesAnio
SELECT DISTINCT(SUBSTRING(CONVERT(VARCHAR, CAMPOFECHA, 103), 4, 10))
FROM TBL_CONTIENEREGISTROS
WHERE CAMPOFECHA BETWEEN @FECHA1 AND @FECHA2
-- parametros del rango (importa solo mes y año)


-- hacemos un inner con la tabla haciendo coincidir
-- solo la parte mes/año para contar los registros
SELECT MESANIO, COUNT(ID_REGISTRO) COUNTER
FROM @TBLMesAnio INNER JOIN TBL_CONTIENEREGISTROS ON MESANIO = SUBSTRING(CONVERT(VARCHAR, CAMPOFECHA, 103), 4, 10)
GROUP BY MESANIO



Y eso te debe de arrojar una tablita con dos columnas

mesanio counter
----------- ------------
01/2011 524
07/2011 986


espero te sea útil.... y es lo que se me ocurre de momento

Preguntas similares