Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta con fechas

Estas en el tema de Consulta con fechas en el foro de Bases de Datos General en Foros del Web. Hola, resulta que tengo un sistema de noticias de las cuales tengo mas de 5.500 mil registros, y cada dìa crece más y más, yo ...
  #1 (permalink)  
Antiguo 02/06/2005, 22:53
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
Consulta con fechas

Hola, resulta que tengo un sistema de noticias de las cuales tengo mas de 5.500 mil registros, y cada dìa crece más y más, yo necesito sacar el cálculo de cuantas noticias se ingresan por mes a la tabla de noticias.

Estaba probando con esta consulta me ha funcionado pero pasándole parámetros

SELECT COUNT(*) AS TOTAL
FROM `noticias`
WHERE fecha
between '2005-05-01' and '2005-05-31'

resultado

TOTAL = 754

pero yo quisiera hacer la lista de todos los meses con sus totales, por ejemplo;

Enero=500
Febrero=600
Marzo=750
Abril=785
Mayo=784
Junio=100
Julio=0
Agosto=0
Septiembre=0
Octubre=0
Noviembre=0
Diciembre=0

y los meses que no se han ingresado ninguna noticia pues que aparezca en cero o nada.

alguien ha hecho esto?

si me pueden ayudar
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 03/06/2005, 03:24
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 19 años, 5 meses
Puntos: 5
SELECT tbltemp.*,
month(tbltemp.fecha)as mes,
year(tbltemp.fecha)as anio,count(year(tbltemp.fecha)) FROM tbltemp
group by anio,mes

prueba si esto te sirbe,
  #3 (permalink)  
Antiguo 03/06/2005, 06:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 20 años
Puntos: 0
Es un poquito largo, pero bueno, como no se que SGBD utilizas te mando esto que valdría para Oracle, SQL Server y MySQL (Con Oracle igual se podría acortar con el DECODE()).

Código:
SELECT year(fecha) anyo, 
	COUNT(CASE(month(fecha)) WHEN 1 THEN 1 END) Enero, 
	COUNT(CASE(month(fecha)) WHEN 2 THEN 1 END) Febrero, 
	COUNT(CASE(month(fecha)) WHEN 3 THEN 1 END) Marzo, 
	COUNT(CASE(month(fecha)) WHEN 4 THEN 1 END) Abril, 
	COUNT(CASE(month(fecha)) WHEN 5 THEN 1 END) Mayo, 
	COUNT(CASE(month(fecha)) WHEN 6 THEN 1 END) Junio, 
	COUNT(CASE(month(fecha)) WHEN 7 THEN 1 END) Julio, 
	COUNT(CASE(month(fecha)) WHEN 8 THEN 1 END) Agosto, 
	COUNT(CASE(month(fecha)) WHEN 9 THEN 1 END) Septiembre, 
	COUNT(CASE(month(fecha)) WHEN 10 THEN 1 END) Octubre, 
	COUNT(CASE(month(fecha)) WHEN 11 THEN 1 END) Noviembre, 
	COUNT(CASE(month(fecha)) WHEN 12 THEN 1 END) Diciembre
FROM noticias
GROUP BY year(fecha);
Editado: Bueno con oracle no estoy seguro de si funcionaría, no recuerdo si existían las funciones de year() y month().
  #4 (permalink)  
Antiguo 03/06/2005, 10:21
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
ok

oK Gracias posDon, ha funcionado, adjunto una imagen de la consulta, aunque me gustaría hacer una columna más para colocar los totales de cada año



sera posible hacer esto por SQL? o me tocaría directamente por PHP?
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #5 (permalink)  
Antiguo 06/06/2005, 02:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 20 años
Puntos: 0
Nada, añadir un campo contador, sin restringir por la fecha:

Código:
SELECT year(fecha) anyo, 
	COUNT(CASE(month(fecha)) WHEN 1 THEN 1 END) Enero, 
	COUNT(CASE(month(fecha)) WHEN 2 THEN 1 END) Febrero, 
	COUNT(CASE(month(fecha)) WHEN 3 THEN 1 END) Marzo, 
	COUNT(CASE(month(fecha)) WHEN 4 THEN 1 END) Abril, 
	COUNT(CASE(month(fecha)) WHEN 5 THEN 1 END) Mayo, 
	COUNT(CASE(month(fecha)) WHEN 6 THEN 1 END) Junio, 
	COUNT(CASE(month(fecha)) WHEN 7 THEN 1 END) Julio, 
	COUNT(CASE(month(fecha)) WHEN 8 THEN 1 END) Agosto, 
	COUNT(CASE(month(fecha)) WHEN 9 THEN 1 END) Septiembre, 
	COUNT(CASE(month(fecha)) WHEN 10 THEN 1 END) Octubre, 
	COUNT(CASE(month(fecha)) WHEN 11 THEN 1 END) Noviembre, 
	COUNT(CASE(month(fecha)) WHEN 12 THEN 1 END) Diciembre,
	COUNT(fecha) Total
FROM noticias
GROUP BY year(fecha);
Editado: Sin restringir por el mes, perdon :P

  #6 (permalink)  
Antiguo 06/06/2005, 21:22
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
OK GRACIAS PosDon me ha funcionado correctamente :o)
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:36.