consulta de horas extras
Publicado por janet (6 intervenciones) el 18/08/2008 19:31:03
hola alguien me podria ayudar a complementar una consulta, tengo este problema la consulta realiza la resta de hora salida menos hora de entrada y esta sele resta 10:30:00 para el resultado me de las horas extras hasta hay esta bien de lunes a viernes pero el sabado solo trabajan 05:30:00 asi que ya no me funciona lo que hice anterior mente porque si todo lo agrupo me faltan hras extras de sabado
La hora de trabajo es de lunes a viernes de 07:30 a 18:00 pero es sabado es de 07:30:00 a 13:00:00.
ejemplo: 2008-07-18(viernes)entre el empleado a las 07:35:04 19:31:08 asi que las hras extras son 01:26:04 pero el sabado(2008-07-19) trabajo 07:35:04 18:31:08 se supone que trabajo horas extras 05:25:04
Ya he intendado esto: if(count(*)>=6,((SUM(LEFT(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>= '11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),2))
Pero no me queda ya se me agotaron las ideas alguna idea gracias, esta es la consulta que tengo:
SELECT id,apellido as NOMBRE, empresa AS EMPRESA, ctrabajo as CTRABAJO, tipoemp AS TIPOEMP, puesto AS PUESTO, IF(count(*)=12, count(h_entrada)+2, IF(count(*)=6, count(h_entrada)+1, count(h_entrada))) as DIAS_TRAB, ((SUM(LEFT(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>='11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),2)) +sum(IF(SUBSTRING(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>='11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),4,2)>=50,'1','0')))) AS HRS_EXT from Resultado_Inc2 where fecha between 'fecha = ".2008-07-14."' and 'fecha = ".2008-07-20."' and h_entrada > '00:00:00' AND empresa='4' AND tipoemp='D' AND ctrabajo='5' GROUP BY id ORDER BY id limit 6
La hora de trabajo es de lunes a viernes de 07:30 a 18:00 pero es sabado es de 07:30:00 a 13:00:00.
ejemplo: 2008-07-18(viernes)entre el empleado a las 07:35:04 19:31:08 asi que las hras extras son 01:26:04 pero el sabado(2008-07-19) trabajo 07:35:04 18:31:08 se supone que trabajo horas extras 05:25:04
Ya he intendado esto: if(count(*)>=6,((SUM(LEFT(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>= '11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),2))
Pero no me queda ya se me agotaron las ideas alguna idea gracias, esta es la consulta que tengo:
SELECT id,apellido as NOMBRE, empresa AS EMPRESA, ctrabajo as CTRABAJO, tipoemp AS TIPOEMP, puesto AS PUESTO, IF(count(*)=12, count(h_entrada)+2, IF(count(*)=6, count(h_entrada)+1, count(h_entrada))) as DIAS_TRAB, ((SUM(LEFT(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>='11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),2)) +sum(IF(SUBSTRING(IF(SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada))>='11:20:00', SEC_TO_TIME(TIME_TO_SEC(h_salida) - TIME_TO_SEC(h_entrada)-'37800') ,'0'),4,2)>=50,'1','0')))) AS HRS_EXT from Resultado_Inc2 where fecha between 'fecha = ".2008-07-14."' and 'fecha = ".2008-07-20."' and h_entrada > '00:00:00' AND empresa='4' AND tipoemp='D' AND ctrabajo='5' GROUP BY id ORDER BY id limit 6
Valora esta pregunta


0