PHP - Columnas por mes en mysql

 
Vista:

Columnas por mes en mysql

Publicado por Alexis Rebolledo (3 intervenciones) el 16/03/2015 21:20:38
Estimados,

Me estoy volviendo loco y espero ud me puedan ayudar. Debo realizar una consulta a una tabla en mysql, la cual tiene un campo fecha, un campo id_user , y una serie de campos mas. Lo que necesito hacer es que la consulta cuente las entradas por usuarios y muestre esto por columnas por mes. Espero haber explicado claramente y puedan ayudarme.Gracias.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Columnas por mes en mysql

Publicado por Gonzalo (615 intervenciones) el 16/03/2015 22:13:35
lo que se me ocurre es hacer algo parecido a un libro de visitas.

hay bastantes ejemplos disponibles en google, espero te sea de ayuda.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Columnas por mes en mysql

Publicado por eyanez (32 intervenciones) el 17/03/2015 16:51:57
No si te entendi bien,

Tabla1
user_id
fecha
campo1.... campo99

Tienes
user_id fecha
1 2015-03-01
2 2015-03-02
1 2015-03-03

Si lo que quieres saber es la cantidad de veces que apareces el usuario es lo siguiente
select user_id, count(user_id) as cant_entradas from tabla1 where fecha beetwen '2015-03-01' and '2015-03-10'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Columnas por mes en mysql

Publicado por Alexis Rebolledo (3 intervenciones) el 17/03/2015 17:01:29
Gracias por responder. El contar los registros por usuario, conozco como realizar esto, el tema que debo contarlos por mes, y estos meses deben aparecer como columnas, es decir :

ID | ENERO | FEBRERO | MARZO | ABRIL
1 | 34 | 23 | 56 | 12
2 | 21 | 20 | 18 | 5

Ese es mi problema no he logrado realizar las columnas hacia el costado , hacia la derecha

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Columnas por mes en mysql

Publicado por Rafael (40 intervenciones) el 17/03/2015 17:18:53
Pues como no ponemos nada mas que datos incompletos y tenemos que adivinar mucho ...

Espero te sirva esto que seria una idea para hacer la consulta por columnas..

Saludos
1
2
3
4
5
6
7
8
SELECT
SUM(CASE WHEN DATEPART('month', fecha)=1 THEN 1 ELSE 0 END) AS ENERO,
SUM(CASE WHEN DATEPART('month', fecha)=2 THEN 1 ELSE 0 END) AS FEBRERO,
SUM(CASE WHEN DATEPART('month', fecha)=3 THEN 1 ELSE 0 END) AS MARZO,
...
...
SUM(CASE WHEN DATEPART('month', fecha)=12 THEN 1 ELSE 0 END) AS DICIEMBRE
FROM TABLA;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Columnas por mes en mysql

Publicado por Gonzalo (615 intervenciones) el 17/03/2015 17:46:15
tambien puedes usar el count

select
datepart('year',fecha), as year,
datepart('month',Fecha), as Month,
count(fecha) as visitas
from tabla
group by datepart('year',fecha),datepart('month',Fecha)
order by datepart('year',fecha),datepart('month',Fecha)

te debe dar
2015,1,10 //estas son 10 visitas en enero del 2015
2015,2,10 //estas son 10 visitas en febrero del 2015
2015,3,10 //estas son 10 visitas en marzo del 2015
etc

de abril en adelante deberan ser 0 visitas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Columnas por mes en mysql

Publicado por RubenD (1 intervención) el 17/04/2018 23:33:44
Resulto excelente esta forma de ordenar tablas en columnas por mes basado en un campo, asi me quedo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT helicopteros.h_id, helicopteros.h_matricula,
SUM(CASE WHEN vuelos.v_mes=1 THEN vuelos.v_minutos_calzo ELSE 0 END) AS ENERO,
SUM(CASE WHEN vuelos.v_mes=2 THEN vuelos.v_minutos_calzo ELSE 0 END) AS FEBRERO,
SUM(CASE WHEN vuelos.v_mes=3 THEN vuelos.v_minutos_calzo ELSE 0 END) AS MARZO,
SUM(CASE WHEN vuelos.v_mes=4 THEN vuelos.v_minutos_calzo ELSE 0 END) AS ABRIL,
SUM(CASE WHEN vuelos.v_mes=5 THEN vuelos.v_minutos_calzo ELSE 0 END) AS MAYO,
SUM(CASE WHEN vuelos.v_mes=6 THEN vuelos.v_minutos_calzo ELSE 0 END) AS JUNIO,
SUM(CASE WHEN vuelos.v_mes=7 THEN vuelos.v_minutos_calzo ELSE 0 END) AS JULIO,
SUM(CASE WHEN vuelos.v_mes=8 THEN vuelos.v_minutos_calzo ELSE 0 END) AS AGOSTO,
SUM(CASE WHEN vuelos.v_mes=9 THEN vuelos.v_minutos_calzo ELSE 0 END) AS SEPTIEMBRE,
SUM(CASE WHEN vuelos.v_mes=10 THEN vuelos.v_minutos_calzo ELSE 0 END) AS OCTUBRE,
SUM(CASE WHEN vuelos.v_mes=11 THEN vuelos.v_minutos_calzo ELSE 0 END) AS NOVIEMBRE,
SUM(CASE WHEN vuelos.v_mes=12 THEN vuelos.v_minutos_calzo ELSE 0 END) AS DICIEMBRE,
sum(vuelos.v_minutos_calzo) AS TOTAL
FROM helicopteros
left join vuelos on  helicopteros.h_id=vuelos.h_id
group by helicopteros.h_id

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Columnas por mes en mysql

Publicado por eyanez (32 intervenciones) el 17/03/2015 22:12:55
Ok no hay como hacerlo directamente, pero no es que no se pueda hacer,

En un procedmiento almacenado
Haz un cursor con un sql y obtienes los meses
Haz una tabla temporary con los campos (meses) que agregados dinamicamente
Luego haz un cursor con los datos y rellena la tabla
Luego ejecutas el select y obtienes los datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar