MySQL - Sumar y comparar registros agrupados

   
Vista:
Imágen de perfil de Alexander

Sumar y comparar registros agrupados

Publicado por Alexander alexzz_9123@hotmail.com (1 intervención) el 12/08/2016 01:21:34
Buenas Tardes,

Tengo el siguiente problema, estoy consultando 2 tablas, USERS y TIMETRACKER, en donde saco el nombre del usuario y el tiempo de horas laboradas, todo la consulta se basa en TIMETRACKER unicamente utilizo USER para que me de el nombre de la persona ya que estan relacionadas entre si, select b.name,a.hours from timetracker a, user b where a.user=b.id :
name hours
Velazquez Cortes Alexander 4.93
Velazquez Cortes Alexander 3.72
López Montiel Gonzalo Enrique 5.02
López Montiel Gonzalo Enrique 3.43
López Montiel Gonzalo Enrique 4.83
López Montiel Gonzalo Enrique 3.75
López Montiel Gonzalo Enrique 5.17
López Montiel Gonzalo Enrique 3.33

Realizo el siguiente query para juntar la cantidad de horas totales por usuario SELECT B.NAME, SUM(A.HOURS)AS TOTAL FROM TIMETRACKER A, USER B WHERE A.USER=B.ID GROUP BY A.USER:
NAME TOTAL
Velazquez Cortes Alexander 8.649999856948853
López Montiel Gonzalo Enrique 25.52999997138977

Ahora quisiera que solo me mostrara aquellos que solo hayan laborado menores a 10, intente con la siguiente consulta,
1
SELECT B.NAME, SUM(A.HOURS)AS TOTAL FROM TIMETRACKER A, USER B WHERE A.USER=B.ID AND ((SELECT SUM(A.HOURS)AS TOTAL FROM TIMETRACKER A)<10) GROUP BY A.USER :
pero no me muestra nada y es que estoy viendo que la subconsulta esta sumando el total de las horas laboradas, alguien me podria ayudar a que solo valide el total de horas de cada usuario
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

Sumar y comparar registros agrupados

Publicado por DAVID (63 intervenciones) el 13/08/2016 08:34:14
Si quieres poner condiciones sobre los campos se agrupados, usa la clausula Having, es decir, seria algo así:
1
2
3
4
5
SELECT B.NAME, SUM(A.HOURS)AS TOTAL
 FROM TIMETRACKER A, USER B
WHERE A.USER=B.ID
 GROUP BY A.USER
HAVING SUM(A.HOURS)>10;

Un saludo,
David
diseño grafico madrid
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