Buenas gente. Tengo la siguiente consulta:
Código SQL:
Ver originalSELECT personal_asistencia.id_personal AS ID, concat(nombre, ' ', apellido) AS Nombre,
time_format(SUM(timediff(salida, entrada)), '%h:%i') AS 'Horas totales',
precio_hora AS 'Precio/Hora',
round((SUM(timediff(MINUTE, entrada, salida)) * (precio_hora / 60)), 2) AS Pago
FROM personal_asistencia
INNER JOIN personal ON personal.id = personal_asistencia.id_personal
INNER JOIN personal_precio_hora ON personal.id = personal_precio_hora.id_personal
WHERE entrada >= '2018-02-01' AND salida <= '2018-02-28' AND personal_asistencia.id_personal = 33
que devuelve el siguiente resultado:
Código SQL:
Ver original+----+-----------------+---------------+-------------+---------+
| ID | Nombre | Horas totales | Precio/Hora | Pago |
+----+-----------------+---------------+-------------+---------+
| 33 | Nombre Apellido | NULL | 100 | 1010.00 |
+----+-----------------+---------------+-------------+---------+
1 ROW IN SET, 1 warning (0.00 sec)
[/CODE]
El warning es el siguiente:
Código SQL:
Ver original+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect TIME VALUE: '96600.000000' |
+---------+------+------------------------------------------------+
El valor (NULL) de horas totales debería ser 10:06. (Cambié el nombre de la persona porque es una persona real).
De acá saca la info:
Código SQL:
Ver original+----+-------------+---------------------+---------------------+-----------+-------------+
| id | id_personal | entrada | salida | id_estado | comentarios |
+----+-------------+---------------------+---------------------+-----------+-------------+
| 1 | 33 | 2018-02-03 13:18:00 | 2018-02-03 20:06:00 | NULL | |
| 3 | 33 | 2018-02-03 20:09:00 | 2018-02-03 20:15:00 | NULL | |
| 13 | 33 | 2018-02-11 08:34:00 | 2018-02-11 11:46:00 | NULL | |
+----+-------------+---------------------+---------------------+-----------+-------------+
Sin embargo, cuando ejecuto la misma consulta para otro usuario, el 27, obtengo un resultado que no es correcto (debería ser 61:15) pero sin warnings. Aún así, en PHP obtengo el resultado correcto.
Código SQL:
Ver original+----+------------------------+---------------+-------------+---------+
| ID | Nombre | Horas totales | Precio/Hora | Pago |
+----+------------------------+---------------+-------------+---------+
| 27 | Nombre Apellido | 01:15 | 75.6 | 4630.50 |
+----+------------------------+---------------+-------------+---------+
Gracias de antemano.