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

[SOLUCIONADO] Consulta con promedio de fechas para varios campos

Estas en el tema de Consulta con promedio de fechas para varios campos en el foro de Mysql en Foros del Web. Hola a todos, llevo un tiempo con una consulta y la verdad que no consigo dar con la manera de realizarla, os comento: La consulta ...
  #1 (permalink)  
Antiguo 01/02/2014, 05:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 23
Antigüedad: 11 años, 8 meses
Puntos: 2
Consulta con promedio de fechas para varios campos

Hola a todos, llevo un tiempo con una consulta y la verdad que no consigo dar con la manera de realizarla, os comento:

La consulta la tengo que realizar en base a 3 tablas, por un lado tengo una tabla llamada Premios, por otro tengo Usuarios, y por último como la relación es muchos a muchos pues tengo RelPremiosUsuarios, os las detallo a continuación:


Premios
-nombrePremio
-descripcion
-nivel
-refAplicacion


RelPremiosUsuarios
-refPremio
-refUsuario
-fecha


Usuarios
-nombreUsuario
-fechaUsuario


Ahora bien, la consulta que quiero es, a partir de los niveles de cada aplicación, mostrar cuanto tiempo de promedio se ha tardado para un mismo premio, esto sería desde que el usuario se ha registrado en la aplicación que corresponde al campo fechaUsuario. La verdad que me encuentro muy perdido, en principio yo sacaría de cada nivel y premio todos los que han conseguido ese premio, y a partir de ahí realizar el promedio de tiempo calculado en base a desde que el usuario se registró en la aplicación y la fecha de consecución del premio (con todos los usuarios habría que hacerlo para así sacar el promedio).

Si me pudierais orientar un poco os estaría muy agradecido.

Saludos.
Gracias de antemano.
  #2 (permalink)  
Antiguo 01/02/2014, 10:03
 
Fecha de Ingreso: agosto-2012
Mensajes: 23
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Consulta con promedio de fechas para varios campos

Acabo de dar con la solución, os pongo la consulta por si a alguien le es util:

Código MySQL:
Ver original
  1. select T1.nivel, T1.nombrePremio, T1.refAplicacion, avg(datediff(T1.fecha, T1.fechaUsuario)) from (select nivel,nombrePremio,refAplicacion,fecha,nombreUsuario, fechaUsuario from usuarios, (select nivel, nombrePremio, refAplicacion, fecha, refUsuario from premios, RelPremiosUsuarios where refPremio = nombrePremio) T where T.refUsuario=nombreUsuario) T1 group by T1.nivel, T1.nombrePremio, T1.refAplicacion;

Etiquetas: Ninguno
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 20:24.