Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2010, 11:10
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Esto parece dificil Ayuda!

Buenos días beto60, creo que esto te puede servir:

Código MySQL:
Ver original
  1. #Creamos una tabla de pruebas
  2. create table `pruebas`.`TMP_EntradasSalidas` (  `id` int UNSIGNED NOT NULL AUTO_INCREMENT , `usr` varchar (10) NOT NULL , `fecha` date NOT NULL , `ingreso1` varchar (10) , `salida1` varchar (10) , `ingreso2` varchar (10) , `salida2` varchar (10) , PRIMARY KEY (`id`))  
  3.  
  4. #Insertamos valores a la tabla de pruebas
  5. insert into TMP_EntradasSalidas values (null, '001', '2010-11-01', 'marcado', 'marcado', 'marcado', 'marcado'),
  6. (null, '001', '2010-11-02', 'marcado', 'marcado', null, null),
  7. (null, '001', '2010-11-03', 'marcado', 'marcado', null, null),
  8. (null, '001', '2010-11-04', 'marcado', 'marcado', 'marcado', null),
  9. (null, '001', '2010-11-05', 'marcado', 'marcado', 'marcado', null),
  10. (null, '001', '2010-11-06', 'marcado', 'marcado', 'marcado', 'marcado'),
  11. (null, '002', '2010-11-05', 'marcado', 'marcado', 'marcado', null),
  12. (null, '002', '2010-11-06', 'marcado', 'marcado', 'marcado', 'marcado')
  13.  
  14. #Verificamos los valores de la tabla
  15. select * from TMP_EntradasSalidas
  16.  
  17. #Sumamos los días trabajados
  18.     (ingreso1 is not null and
  19.     salida1 is not null and
  20.     ingreso1 is not null and
  21.     salida2 is not null) then 1 else 0.5 end) as dias_trabajados
  22. from TMP_EntradasSalidas
  23.  
  24. #Eliminamos la tabla de pruebas
  25. drop table TMP_EntradasSalidas

El resultado de esta consulta sería el siguiente

Código:
usr|dias_trabajados
-------------------------------------------
001|4.0
002|1.5
Saludos
Leo