Respuesta: consulta access He conseguido arreglarla un poco
SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, TimeValue([horainicio]) AS Expr1, TimeValue([horafinal]) AS Expr2, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.sabado, PartesDeTrabajo.festivo
FROM operario2 INNER JOIN PartesDeTrabajo ON operario2.CodigoOperario = PartesDeTrabajo.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?])) OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>TimeValue(#12/30/1899 22:0:0#)) AND ((PartesDeTrabajo.noche)=True)) OR (((PartesDeTrabajo.fecha)=DateAdd("d",1,[Qué día?])) AND ((TimeValue([horainicio]))<TimeValue(#12/30/1899 7:0:0#)) AND ((PartesDeTrabajo.noche)=True))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, TimeValue([horainicio]);
El problema es que he tenido que quitar en la primera línea del where que noche esté como falso, ya que si lo pongo no me salen los registros que tienen que salir, pero si lo dejo tal y como lo tengo, en los registros del propio día hay registros de noche que quizá no tienen que salir.
Bueno, al final lo he arreglado añadiendo una cosa más a la condición where
SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, TimeValue([horainicio]) AS Expr1, TimeValue([horafinal]) AS Expr2, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.sabado, PartesDeTrabajo.festivo
FROM operario2 INNER JOIN PartesDeTrabajo ON operario2.CodigoOperario = PartesDeTrabajo.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>TimeValue(#12/30/1899 6:0:0#)) AND ((PartesDeTrabajo.mañana)=True)) OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>TimeValue(#12/30/1899 6:0:0#)) AND ((PartesDeTrabajo.tarde)=True)) OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>TimeValue(#12/30/1899 21:0:0#)) AND ((PartesDeTrabajo.noche)=True)) OR (((PartesDeTrabajo.fecha)=DateAdd("d",1,[Qué día?])) AND ((TimeValue([horainicio]))<TimeValue(#12/30/1899 7:0:0#)) AND ((PartesDeTrabajo.noche)=True))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, TimeValue([horainicio]);
Última edición por Koudelka; 19/06/2008 a las 04:18 |