Consulta access

Tengo una Consulta en la que calculare tres fechas con trs fórmulas distintas. Posteriormente, quiero crear otra consulta en que cada registro tendrá uno de los campos fecha calculado que se guradara en un campo fecha definitivo, pero el campo de la consulta previa que eligire para volcar en el campo fecha de la segunda dependerá del valor 1, 2, 3 que tenga un determinado campo de la primera consulta.
Consulta 1 :Registro, Fecha1, Fecha2, Fecha3, Metodo (1-2-3)
Consulta 2: Registro, Fecha (si Metodo=1 Fecha 1; si Metodo=2 Fecha 2; si Metodo=3 Fecha3)
Como puedo hacerlo. He inten tado con select y case y no me aclaro con la sintaxis.

1 respuesta

Respuesta
1
Lo que quieres hacer lo puedes hacer directamente en la primera consulta. Voy a suponer que tienes una tabla donde tienes, como mínimo, los campos que señalas en tu consulta 1.
Lo que debes hacer es lo siguiente:
1.- Creas una consulta en vista diseño basada sobre la tabla donde tienes los anteriores campos (Registro, FechaX, Método)
2.- Arrastras al grid de la consulta el campo [Registro]
3.- En una columna vacía escribes lo siguiente en la primera línea, la que corresponde a la línea "Campo:"
Fecha Definitiva: Iif([Metodo]=1;[Fecha1]:Iif([Metodo]=2;[Fecha2];[Fecha3]))
Si no tuvieras esa tabla, y los datos te vienen de la consulta1, construyes esta consulta basada en esa consulta1, con lo que tendrás los campos que necesitas para realizar el proceso.
Te lo he escrito de memoria y me imagino que no tendrás ningún problema. Si no te funciona bien o tienes algún problema me comentas y miramos de arreglarlo.
Un saludo,
... http://neckkito.eu5.org ...
SELECT [1 - Especialidades_1 Consulta1].N_Registro, [1 - Especialidades_1 Consulta1].Nombre_Producto, [1 - Especialidades_1 Consulta1].Calculo_Fecha_IPS, [1 - Especialidades_1 Consulta1].FDC, [1 - Especialidades_1 Consulta1].Presentado, IIf([1 - Especialidades_1 Consulta1].Calculo_Fecha_IPS="3a(FCD)",([1 - Especialidades_1 Consulta1].Fecha_IPS1),[1 - Especialidades_1 Consulta1].Fecha_IPS2) AS Fecha_IPS
FROM [1 - Especialidades_1 Consulta1];
Esta es la consulta que he generado a partir de la consulta 1 - Especialidades_1 Consulta1 y en negrita esta la instrucción iff que me indicaste, pero no me devuelve ningún registro en el campo Fecha_IPS que es el que se forma nuevo. Te agradecería que me indicases donde puede estar el problema.
Gracias por haber contestatado con tanta prontitud.
Por lo que veo estás utilizando el Iif con dos condiciones, cuando tú me has comentado que tenías tres. Tampoco pasa nada.
Quita el paréntesis en la condición de verdadero. Es decir, el Iif funciona así:
IIf(condición; valor si verdadero; valor si falso).
De manera que te quede así:
IIf([1 - Especialidades_1 Consulta1].Calculo_Fecha_IPS="3a(FCD)",[1 - Especialidades_1 Consulta1].Fecha_IPS1,[1 - Especialidades_1 Consulta1].Fecha_IPS2)
Ojo! Te estoy hablando de la SQL. Si lo haces en vista diseño de consulta de selección las condiciones van separadas por punto y coma.
Doy por supuesto que la consulta, si le quitaras el campo calculado, te devolvería valores.
Ya me dirás qué tal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas