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

SELECT agrupado por mes y usuario

Estas en el tema de SELECT agrupado por mes y usuario en el foro de Mysql en Foros del Web. Hola a todos, Les comento que estoy tratando de hacer una consulta: Tengo una tabla llama libros, y en ella se guardan basicamente los siguientes ...
  #1 (permalink)  
Antiguo 21/11/2011, 12:35
Avatar de aovalle  
Fecha de Ingreso: junio-2002
Ubicación: Bogotá, Colombia
Mensajes: 54
Antigüedad: 21 años, 10 meses
Puntos: 0
SELECT agrupado por mes y usuario

Hola a todos,

Les comento que estoy tratando de hacer una consulta:

Tengo una tabla llama libros, y en ella se guardan basicamente los siguientes datos:

1. libro_id
2. titulo
3. fechacreacion
4. usuario

Lo que quiero saber es si es posible sacar una tabla para un año especifico en la que me agrupe la cantidad de libros creados para cada mes (columnas) cruzandola con el usuario (filas) que creó el libro en la tabla.

De antemano muchas gracias por la ayuda que me puedan brindar.

Saludos,
  #2 (permalink)  
Antiguo 22/11/2011, 03:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: SELECT agrupado por mes y usuario

No existe la consulta de referencias cruzadas en MySql.

Código MySQL:
Ver original
  1. SELECT YEAR(fechacreacion),MONTH(fechacreacion),usuario,count(*)
  2. FROM libros
  3. GROUP BY YEAR(fechacreacion),MONTH(fechacreacion),usuario;

lo mas cercano es esto pero para presentarlo en columnas tendràs que trabajarlo con programación externa.


Código MySQL:
Ver original
  1. SELECT sbc.usuario,
  2.              sum(if(sbc.mes=1,sbc.numLibros,0)) as Enero,
  3.              sum(if(sbc.mes=2,sbc.numLibros,0)) as Febrero,
  4.              ...
  5.              sum(if(sbc.mes=12,sbc.numLibros,0)) as Diciembre
  6.           (SELECT YEAR(fechacreacion) as año,
  7.                         MONTH(fechacreacion) as mes,
  8.                         usuario,
  9.                         count(*) as numLibros
  10.             FROM libros
  11.             GROUP BY YEAR(fechacreacion),
  12.                              MONTH(fechacreacion),
  13.                              usuario) as sbc
  14. WHERE sbc.año=X
  15. GROUP BY sbc.usuarios;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 26/11/2011, 18:36
Avatar de aovalle  
Fecha de Ingreso: junio-2002
Ubicación: Bogotá, Colombia
Mensajes: 54
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: SELECT agrupado por mes y usuario

Hola,

La consulta ha funcionado muy bien. Muchas gracias.

No sé si es posible complicar un poco el SELECT con dos adicionales:

1. Es posible en el mismo SELECT totalizar los resultados para cada mes?
2. En realidad en el campo 'usuario' estoy guardando el id del usuario; pero tengo otra tabla llamada usuarios, la cual contiene el id_usuario y el nombre_usuario. Es posible en esta consulta presentar en lugar del id_usuario el nombre del mismo?. Cómo se podría hacer esto?

De antemano mil gracias de nuevo!

Etiquetas: agrupado, select, tabla, usuarios
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.
Tema Cerrado




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