Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 09-jun-2008, 05:38   #1 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
consulta access

Veamos, yo tengo la siguiente consulta en access (lo pongo en sql para que nos entendamos y veais los campos que tengo y tal)

SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?]))
ORDER BY operario2.nombre, PartesDeTrabajo.horainicio;

Me gustaría modificarla un poco. Veamos, el campo noche es un campo de si/no y lo único que indica es el turno del trabajador en un día en concreto. El caso es que el turno de noche comienza a las 10 de la noche y acaba a las 6 o 7 del día siguiente.

En la consulta me gustaría que si un trabajador comienza a las 10 de la noche del día 08/06 y acaba el 09/06, en esta consulta que me mostrase los registros que correspondan a su turno aunque sean del día siguiente, esto es, que me muestre el turno completo.
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 04:42   #2 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Borrado estaba mal!!!!

Algo asi te deberia funcionar, he considerado que si buscas los partes del dia X quieres todos los partes del turno de noche que empieza en el dia X, es decir hasta X+1 antes de las 7. En el order by he agregado la fecha puesto que ahora tendras partes de dos fechas.... (El delimitador de la hora no se si son las " comillas o #) (no intentes hacerlo con el asistente de consultas...)

[Qué día?] tiene que estar escrito exàctamente igual en todos los casos para que no pregunte n veces...

Quim

Última edición por quimfv; 10-jun-2008 a las 06:15.
quimfv está desconectado   Responder Citando
Antiguo 10-jun-2008, 05:07   #3 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

si intento hacer una consulta con lo que tú me has escrito me sale el error que me dice lo siguiente

error de sintaxis en la consulta de unión

He estado mirando y he intentado poner la parte del where a lo que habías puesto tú:

SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE PartesDeTrabajo.noche=true and (PartesDeTrabajo.fecha=[Qué día?] or (PartesDeTrabajo.fecha=[Qué día?]+1 and PartesDeTrabajo.horainicio<"07:00:00"))
ORDER BY operario2.nombre, PartesDeTrabajo.horainicio;


pero sigue dando error T.T
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 05:11   #4 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

Bueno, algo he conseguido sacar, tengo puesto lo siguiente:

SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?])) OR (((PartesDeTrabajo.horainicio)<#12/30/1899 7:0:0#) AND ((PartesDeTrabajo.noche)=True))
ORDER BY operario2.nombre, PartesDeTrabajo.horainicio;

Y no me da ningún tipo de error y me muestra los registros que son de turno noche y que no superan las 7 horas de la mañana. Así que el error está en ponerle que sean del día siguiente.
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 05:59   #5 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Perdon por exceso de confianza use +1 para agregar un dia a una fecha, ERROR, usa lo siguiente

DateAdd("d",1,[Qué día?])

Tu solucion no te da problemas pero "creo" que te dara partes nocturnos que no corresponden a la jornada laboral elegida, quizas ya te va bien...

Pero tines razon mi solucion incial se puede simplificar....

Código:
SELECT PartesDeTrabajo.nparte, 
            PartesDeTrabajo.CodigoOperario, 
            operario2.nombre, 
            PartesDeTrabajo.fecha, 
            PartesDeTrabajo.obra, 
            PartesDeTrabajo.actividad, 
            PartesDeTrabajo.subactividad, 
            PartesDeTrabajo.horas, 
            PartesDeTrabajo.horainicio, 
            PartesDeTrabajo.horafinal, 
            PartesDeTrabajo.mañana, 
            PartesDeTrabajo.tarde, 
            PartesDeTrabajo.noche, 
            PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 
            ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (PartesDeTrabajo.noche=false
            and PartesDeTrabajo.fecha=[Qué día?])
            or (PartesDeTrabajo.noche=true
                     and ((PartesDeTrabajo.fecha=[Qué día?] 
                              and PartesDeTrabajo.horainicio>#12/31/1899 22:0:0#)
                         or (PartesDeTrabajo.fecha= DateAdd("d",1,[Qué día?]))
                                and PartesDeTrabajo.horainicio<#12/31/1899 7:0:0#))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio;
(Ojo con los parentesis)

De esta forma te deberia dar los partes del dia elegido de los turnos NO nocturnos y los partes del turno de noche que empieza en el dia elegido.... creo


Suerte...

Quim

Última edición por quimfv; 10-jun-2008 a las 06:13.
quimfv está desconectado   Responder Citando
Antiguo 10-jun-2008, 06:15   #6 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

No da error, pero sólo muestra los registros del día que le pongo >.<
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 06:19   #7 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

En que solución?
quimfv está desconectado   Responder Citando
Antiguo 10-jun-2008, 06:25   #8 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

La última que me has puesto, esta:

Cita:
SELECT PartesDeTrabajo.nparte,
PartesDeTrabajo.CodigoOperario,
operario2.nombre,
PartesDeTrabajo.fecha,
PartesDeTrabajo.obra,
PartesDeTrabajo.actividad,
PartesDeTrabajo.subactividad,
PartesDeTrabajo.horas,
PartesDeTrabajo.horainicio,
PartesDeTrabajo.horafinal,
PartesDeTrabajo.mañana,
PartesDeTrabajo.tarde,
PartesDeTrabajo.noche,
PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2
ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (PartesDeTrabajo.noche=false
and PartesDeTrabajo.fecha=[Qué día?])
or (PartesDeTrabajo.noche=true
and ((PartesDeTrabajo.fecha=[Qué día?]
and PartesDeTrabajo.horainicio>#12/31/1899 22:0:0#)
or (PartesDeTrabajo.fecha= DateAdd("d",1,[Qué día?]))
and PartesDeTrabajo.horainicio<#12/31/1899 7:0:0#))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio;
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 06:33   #9 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Código:
SELECT PartesDeTrabajo.nparte, 
            PartesDeTrabajo.CodigoOperario, 
            operario2.nombre, 
            PartesDeTrabajo.fecha, 
            PartesDeTrabajo.obra, 
            PartesDeTrabajo.actividad, 
            PartesDeTrabajo.subactividad, 
            PartesDeTrabajo.horas, 
            PartesDeTrabajo.horainicio, 
            PartesDeTrabajo.horafinal, 
            PartesDeTrabajo.mañana, 
            PartesDeTrabajo.tarde, 
            PartesDeTrabajo.noche, 
            PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 
            ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (PartesDeTrabajo.noche=false
            and PartesDeTrabajo.fecha=[Qué día?])
            or (PartesDeTrabajo.noche=true
                     and ((PartesDeTrabajo.fecha=[Qué día?] 
                              and PartesDeTrabajo.horainicio>#12/30/1899 22:0:0#)
                         or (PartesDeTrabajo.fecha= DateAdd("d",1,[Qué día?])
                                and PartesDeTrabajo.horainicio<#12/30/1899 7:0:0#)))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio;
Otro error habia un lio de parentesis, lo siento

Quim

Última edición por quimfv; 10-jun-2008 a las 09:22. Razón: He cambiado 31 por 30
quimfv está desconectado   Responder Citando
Antiguo 10-jun-2008, 08:04   #10 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

siguen saliendo los registros de un solo día -.-
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 10-jun-2008, 09:17   #11 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

El error esta en la fecha tiene que ser #12/30/1899 22:0:0# y #12/30/1899 7:0:0#. Tu lo habias puesto bien.

Acabo de probarlo con los siguientes datos y da los dos dias:

Tabla2
data Fecha/Hora Fecha corta
hora Fecha/Hora Hora larga


Data------------Hora
28/11/1963---21:59:00
28/11/1963---22:10:00
29/11/1963----6:50:00
29/11/1963----7:01:00

Código:
SELECT Tabla2.data, 
             Tabla2.hora
FROM Tabla2
WHERE (((Tabla2.data)=[Qué día?]) 
                   AND ((Tabla2.hora)>#12/30/1899 22:0:0#)) 
       OR (((Tabla2.data)=DateAdd("d",1,[Qué día?])) 
                   AND ((Tabla2.hora)<#12/30/1899 7:0:0#));
y el resultado es

Data------------Hora
28/11/1963---22:10:00
29/11/1963----6:50:00

Quim
quimfv está desconectado   Responder Citando
Antiguo 11-jun-2008, 01:08   #12 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

creo que algo me he comido porque a mi me siguen apareciendo sólo los del mismo día...

SELECT PartesDeTrabajo.nparte,
PartesDeTrabajo.CodigoOperario,
operario2.nombre,
PartesDeTrabajo.fecha,
PartesDeTrabajo.obra,
PartesDeTrabajo.actividad,
PartesDeTrabajo.subactividad,
PartesDeTrabajo.horas,
PartesDeTrabajo.horainicio,
PartesDeTrabajo.horafinal,
PartesDeTrabajo.mañana,
PartesDeTrabajo.tarde,
PartesDeTrabajo.noche,
PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2
ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (PartesDeTrabajo.noche=false
and PartesDeTrabajo.fecha=[Qué día?])
or (PartesDeTrabajo.noche=true
and ((PartesDeTrabajo.fecha=[Qué día?]
and PartesDeTrabajo.horainicio>#12/30/1899 22:0:0#)
or (PartesDeTrabajo.fecha= DateAdd("d",1,[Qué día?])
and PartesDeTrabajo.horainicio<#12/30/1899 7:0:0#)))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio;
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 11-jun-2008, 04:34   #13 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Código:
WHERE (PartesDeTrabajo.noche=false and PartesDeTrabajo.fecha=[Qué día?])
          or (PartesDeTrabajo.noche=true
                and (
                             (PartesDeTrabajo.fecha=[Qué día?] and PartesDeTrabajo.horainicio>#12/30/1899 22:0:0#)
                        or (PartesDeTrabajo.fecha=DateAdd("d",1,[Qué día?]) and PartesDeTrabajo.horainicio<#12/30/1899 7:0:0#)
                        )
                )

DONDE (Partes diurnos Y del dia)
             O (partes nocturnos 
                        Y (
                             (del dia Y posteriores a las 10) 
                            O (del dia siguiente Y anteriores a las 7)
                             )
                 )


Yo lo veo bien!!??

Estas segura que exiten partes con horainicio entre las 0:0:0 y las 7:0:0 del dia siguiente al que pides?

Lo has intentado con una tabla con un registro de cada tipo todos del dia o de siguiente dia como hice yo...?

Quim

Última edición por quimfv; 11-jun-2008 a las 04:40.
quimfv está desconectado   Responder Citando
Antiguo 11-jun-2008, 05:15   #14 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

lo he vuelto a probar con disntintos días y funcionar... funciona a medias >.<

Lo primero es que al abrirla me pregunta dos veces el día (tendría que ser con uno >.<) y lo segundo, es que tuve que cambiar lo que guardaba el campo horainicio, por lo que a partir de un día, a parte de guardar la hora guarda el día. Con este nuevo cambio no me funciona... T.T
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 11-jun-2008, 06:01   #15 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

A mi me lo pregunta una sola vez tienes que estar segura que el parametro esta escrito exactamente igual cada vez que salga

[Qué día?]

Si has cambiado el formato del campo y ahora guardas el dia es normal que no te funcione puesto que en el where tiene un dia que no coincide 12/30/1899.

Para solucionar esto deberias hacer un update a todos los registros para que todos guarden la fecha correcta... y luego modificar el where para que no salga la fecha constante y salga la correcta.... es factible pero....

o usar alguna funcion que solo tenga en cuenta la hora (no se si exite)..... la hora es la parte fraccionaria del numero que representa la fecha/hora en milisegundos por tanto se debe poder separar y asi poder comparar horas de distintos dias...

Pero, lo siento, investiga que es la manera de aprender....

Quim
quimfv está desconectado   Responder Citando
Antiguo 11-jun-2008, 06:21   #16 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

Lo de repetir pregunta ya lo he arreglado, copiar y pegar salva vidas XDDD.

En cuanto a lo otro, tendré que mirarlo la verdad >.<
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 11-jun-2008, 11:25   #17 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Haz un post preguntando la manera de comparar la hora de fechas distintas si te dan la solución podrás arreglarlo sin updates peligrosos. Seguro que alguien lo tiene hecho.

Ejemplo

28/11/2008 03:00:00
29/11/2008 01:00:00

Comparar estos dos registros y obtener que el segundo es mas temprano que el primero, aun que sea de un dia posterior.

Supongo que se hara restanto el entero que representa le fecha y comparando los decimales.... pero repito seguro que alguien lo tiene hecho o sabe de una función que lo hace.

Deberia ser algo asi como

hora(horainicio)<hora(#12/30/1899 7:0:0#)

Quim
quimfv está desconectado   Responder Citando
Antiguo 12-jun-2008, 03:15   #18 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Bingo!!

Tabla1
28/06/2008 7:00:00
29/06/2008 6:00:00

Código:
SELECT Tabla1.data, TimeValue([data]) AS Expr1
FROM Tabla1
ORDER BY TimeValue([data]);
Resultado
29/06/2008 6:00:00 6:00:00
28/06/2008 7:00:00 7:00:00


TimeValue(horainicio)<TimeValue(#12/30/1899 7:0:0#)

Eso puede funcionar

Quim
quimfv está desconectado   Responder Citando
Antiguo 12-jun-2008, 03:34   #19 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

ahora es cuando digo... eso donde lo pongo?... TimeValue supongo que es un nuevo campo no?, entonces yo añado ese nuevo campo y con lo anteriormente hecho funciona?

EDIT: yo lo he puesto de la siguiente manera y me pregunta dos veces, uno el Qué Dia? y otro Data. Y sigue sin funcionar >.<

SELECT PartesDeTrabajo.nparte, PartesDeTrabajo.CodigoOperario, operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.obra, PartesDeTrabajo.actividad, PartesDeTrabajo.subactividad, PartesDeTrabajo.horas, PartesDeTrabajo.horainicio, PartesDeTrabajo.horafinal, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.festivo, TimeValue([data]) AS Expr1
FROM PartesDeTrabajo INNER JOIN operario2 ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((PartesDeTrabajo.noche)=False)) OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((PartesDeTrabajo.horainicio)>#12/30/1899 22:0:0#) AND ((PartesDeTrabajo.noche)=True)) OR (((PartesDeTrabajo.fecha)=DateAdd("d",1,[Qué día?])) AND ((PartesDeTrabajo.horainicio)<#12/30/1899 7:0:0#) AND ((PartesDeTrabajo.noche)=True))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio, TimeValue([data]);
__________________
Cámara Oscura
Etheria

Última edición por Koudelka; 12-jun-2008 a las 04:21.
Koudelka está desconectado   Responder Citando
Antiguo 12-jun-2008, 05:45   #20 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

vale, ya lo he solucionado XD

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, PartesDeTrabajo.mañana, PartesDeTrabajo.tarde, PartesDeTrabajo.noche, PartesDeTrabajo.festivo
FROM PartesDeTrabajo INNER JOIN operario2 ON PartesDeTrabajo.CodigoOperario = operario2.CodigoOperario
WHERE (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((PartesDeTrabajo.noche)=False)) OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>#12/30/1899 22:0:0#) AND ((PartesDeTrabajo.noche)=True)) OR (((PartesDeTrabajo.fecha)=DateAdd("d",1,[Qué día?])) AND ((TimeValue([horainicio]))<#12/30/1899 7:0:0#) AND ((PartesDeTrabajo.noche)=True))
ORDER BY operario2.nombre, PartesDeTrabajo.fecha, PartesDeTrabajo.horainicio, TimeValue([horainicio]);
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 12-jun-2008, 07:03   #21 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
Respuesta: consulta access

Código:
WHERE 
   (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((PartesDeTrabajo.noche)=False)) 
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]);
Mas o menos...

Quim
quimfv está desconectado   Responder Citando
Antiguo 19-jun-2008, 02:24   #22 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
Respuesta: consulta access

resurjo este tema porque me he fijado de que no está bien pulido >.<

Veamos, he revisado las relaciones (porque las tenía mal >.<). Pero la consulta me falla en la segunda línea del where (con el código que yo tenía puesto) que es la siguiente:

OR (((PartesDeTrabajo.fecha)=[Qué día?]) AND ((TimeValue([horainicio]))>#12/30/1899 22:0:0#) AND ((PartesDeTrabajo.noche)=True))

He intentado poner lo que has puesto quimfv, pero me dice que sobra un paréntesis y por más que lo busco no veo cual sobra!!! >.<
__________________
Cámara Oscura
Etheria
Koudelka está desconectado   Responder Citando
Antiguo 19-jun-2008, 03:03   #23 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383
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]);
__________________
Cámara Oscura
Etheria

Última edición por Koudelka; 19-jun-2008 a las 04:18.
Koudelka está desconectado   Responder Citando
Antiguo 25-jun-2008, 06:08   #24 (permalink)
Koudelka ha deshabilitado el karma
 
Avatar de Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 383