Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2018, 09:48
7sistemas
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
Puntos: 2
select case suma incorrecta

Hola de nuevo. Tengo esta nueva consulta:
Código MySQL:
Ver original
  1. select personal_asistencia.id_personal as ID, concat(nombre, ' ', apellido) as Nombre,
  2.  
  3.     case
  4.       when (salida >= '2018-01-01 00:00:00' and salida <= '2018-01-31 23:59:59')
  5. then time_format(sec_to_time(sum(timestampdiff(second, entrada, salida))), '%H:%i')
  6.       when (salida > '2018-01-31 23:59:59')
  7. then time_format(sec_to_time(sum(timestampdiff(second, entrada, '2018-01-31 23:59:59'))), '%H:%i')
  8.       when (salida = 0)
  9.     end as 'Horas totales',
  10.  
  11.     precio_hora as 'Precio/Hora'
  12.     from personal_asistencia
  13.     inner join personal on personal.id = personal_asistencia.id_personal
  14.     inner join personal_precio_hora on personal.id = personal_precio_hora.id_personal
  15.     where (entrada between '2018-01-01 00:00:00' and '2018-01-31 23:59:59')
  16.     group by Nombre

que devuelve esto:

Código:
+----+-----------------+---------------+-------------+
| ID | Nombre          | Horas totales | Precio/Hora |
+----+-----------------+---------------+-------------+
|  2 | Nom Apellido 1  | 03:00         |        95.5 |
|  5 | Nom Apellido 2  | 72:00         |          80 |
+----+-----------------+---------------+-------------+
Para Nombre Apellido 2, las Horas totales deberían ser 52. Sin embargo, está sumando también las horas del mes siguiente.

Alguna idea?

Gracias de antemano!

Última edición por 7sistemas; 15/02/2018 a las 10:49