Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/06/2009, 19:46
zerts
 
Fecha de Ingreso: junio-2009
Ubicación: Bogota
Mensajes: 16
Antigüedad: 14 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Calcular horas trabajadas nocturnas MySQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código sql:
Ver original
  1. SELECT IdHora, SEC_TO_TIME(SUM(HT)) HorasTrabajadas
  2. FROM
  3. (SELECT IdHora, TIME_TO_SEC(SUBTIME('06:00',HorIni)) HT
  4. FROM HorasTrab
  5. WHERE (HoraIni <'06:00' AND HorFin > '06:00')
  6. UNION
  7. SELECT IdHora, TIME_TO_SEC(SUBTIME(HorFin, '18:00')) HT
  8. FROM HorasTrab
  9. WHERE (HoraIni <'18:00' AND Horafin > '18:00')) T1
  10. GROUP BY IdHora;
Muchas gracias por tu colaboración
Lo estoy probando y hice algunas modificaciones

Código SQL:
Ver original
  1. SELECT IdHora, SEC_TO_TIME(SUM(HT)) HorasTrabajadas
  2. FROM
  3. (SELECT IdHora, TIME_TO_SEC(SUBTIME('06:00',HorIni)) HT
  4. FROM HorasTrab
  5. WHERE (HoraIni <'06:00' AND HorFin > '06:00')
  6. UNION
  7. SELECT IdHora, TIME_TO_SEC(SUBTIME(HorFin, '18:00')) HT
  8. FROM HorasTrab
  9. WHERE (HoraIni <'18:00' AND Horafin > '18:00')
  10. UNION
  11. SELECT IdHora, TIME_TO_SEC(SUBTIME(HorFin, '18:00')) HT
  12. FROM HorasTrab
  13. WHERE (HoraIni <'18:00' AND Horafin < '06:00' AND Horafin<>HoraIni)) T1
  14. GROUP BY IdHora;
Pero todavía falta validar horas como los del IdHora 1 y 5 ya que no cumplen las condiciones.

+-----+-----+------+------+-----+
| IdHora | HorIni | HorFin | Hortra | DiaTra |
+-----+-----+------+------+-----+
| 1 | 11:00 | 10:00 | 23:00 | 2001-02-04 |
| 2 | 02:00 | 14:00 | 12:00 | 2005-06-14 |
| 3 | 14:30 | 16:30 | 02:00 | 2007-04-09 |
| 4 | 05:00 | 11:00 | 06:00 | 2004-08-05 |
| 5 | 12:00 | 10:00 | 22:00 | 2006-10-20 |
+-----+-----+------+------+-----+

De todas formas estoy eternamente agradecido con tu ayuda.
Seguiré probando y les cuento.

Muchas gracias