Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 02-jun-2005, 22:53   #1 (permalink)
andinistas está en el buen camino
 
Avatar de andinistas
 
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
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.
andinistas está desconectado   Responder Citando
Antiguo 03-jun-2005, 03:24   #2 (permalink)
klyfa está en el buen camino
 
Fecha de Ingreso: mayo-2005
Mensajes: 127
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,
klyfa está desconectado   Responder Citando
Antiguo 03-jun-2005, 06:33   #3 (permalink)
PosDon ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2004
Mensajes: 103
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().
PosDon está desconectado   Responder Citando
Antiguo 03-jun-2005, 10:21   #4 (permalink)
andinistas está en el buen camino
 
Avatar de andinistas
 
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
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.
andinistas está desconectado   Responder Citando
Antiguo 06-jun-2005, 02:06   #5 (permalink)
PosDon ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2004
Mensajes: 103
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

PosDon está desconectado   Responder Citando
Antiguo 06-jun-2005, 21:22   #6 (permalink)
andinistas está en el buen camino
 
Avatar de andinistas
 
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
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.
andinistas está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:29.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93