Access - Consulta compleja en SQL

 
Vista:

Consulta compleja en SQL

Publicado por pereti (10 intervenciones) el 20/06/2011 20:14:22
Hola amigos.
Access 2003. Aquí llevo un buen rato peleándome con una consulta y no hay manera de que me salga lo que pretendo en SQL. Por eso acudo otra vez a los sabios de este foro para que, por favor, me presten su inestimable ayuda.
Vamos a ver si puedo explicarme con claridad. Necesito una consulta que, después será el origen de un informe, y que me devuelva todos los registros que cumplan las siguientes condiciones:

1º Que el contenido del campo ”Pago1” sea igual que el contenido del campo ”Importe”. (Formato Número los dos campos, pueden haber campos nulos. Esta condición no es complicada y puede funcionar así: WHERE (Nz([Facturas.Pago1]))=(Nz([Importe])) ).

2º Que me sume el contenido de los campos ”Pago1”, ”Pago2” y ”Pago3”, si las fechas de los campos ”Fecha1”, ”Fecha2” y ”Fecha3” son menores que la fecha actual. (Los campos Fecha1 – 2 y 3 formato fecha y también puede haber campos nulos).

En esta segunda condición es donde me pierdo . No sé cómo expresar y encadenar las dos condiciones en SQL. Por favor, si alguien puede ayudarme le estaré muy agradecido.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta compleja en SQL

Publicado por 2PL (461 intervenciones) el 21/06/2011 07:44:50
Por lo que entiendo de tu pregunta, ¿se tienen que dar las tres condiciones para producir la suma?
si es así, tendrás que poner esto:
SUMAPAGOS:iif([Fecha1])< date() and [Fecha2])< date() and [Fecha3])< date();nz([Pago1])+nz([Pago2])+nz([Pago3]);0)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta compleja en SQL

Publicado por 2pl (53 intervenciones) el 21/06/2011 16:42:50
Lo que te he puesto se refiere a tener un campo en una consulta, llamado en este caso SUMAPAGOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta compleja en SQL

Publicado por pereti (10 intervenciones) el 21/06/2011 20:21:34
Aaaahhh... ya, ya me funciona. El error que me daba era por los paréntesis, los he cambiado y al final se ha quedado así: SUMAPAGOS: SiInm([Fecha1]<Fecha() Y [Fecha2]<Fecha() Y [Fecha3]<Fecha();nz([Pago1])+nz([Pago2])+nz([Pago3]);0)

Ahora funciona perfectamente. Muchísimas gracias, amigo. Muy agradecido.
Un abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta compleja en SQL

Publicado por pereti (10 intervenciones) el 21/06/2011 11:15:59
Gracias 2PL.
Exacto, se tienen que dar las tres condiciones para que sume, además de la primera condición, claro.
De todos modos, no entiendo bien tu amable respuesta. Ese código debería ir en SQL, en el WHERE, en una columna de la consulta o te estás refiriendo al origen del control de un cuadro de control del informe ??.
En el WHERE no creo, en una columna de la consulta no funciona y si es en un cuadro de control mmmm… antes habría que filtrar por la consulta, creo.
Si no te importa, explícamelo con más detalle, por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta compleja en SQL

Publicado por 2PL (461 intervenciones) el 21/06/2011 20:50:46
Perdona, ha sido un craso error, los iif deben cerrase al final, por ejemplo

SUMAPAGOS: SiInm([Fecha1]<Fecha();[Pago1]+1];iif([Fecha2]<Fecha() ;[Pago2]+1;iif([Fecha3]<Fecha();nz([Pago1])+nz([Pago2])+nz([Pago3]);0)))

Si no se da la primera condicion, sigue con la segunda, si tampoco se da , sigue con la tercera y si no, pondra 0 y como son tres iif , pues tres parentesis.
Un cordial saludo desde Cádiz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta compleja en SQL

Publicado por Kirito (1 intervención) el 28/12/2012 17:55:19
Hola Buenas, Comento haber si podriais ayudarme con un problemilla con la consulta SQL en access 2003 que estoy realizando, la pongo:

SELECT Navegacion_web.Fecha_completa, Navegacion_web.Hora, Navegacion_web.Min, IIf(Navegacion_web.IP_usuario='DIRECCION IP','NOMBRE',IIf(Navegacion_web.IP_usuario='DIRECCION IP2','NOMBRE2',IIf(Navegacion_web.IP....ETC....))) As Usuarios, Navegacion_web.Kb, Navegacion_web.Acceso
FROM Navegacion_web;



Lo que necesito es saber porque al poner los IIf(unos 24), le doy a Guardar me dice "consulta muy complicada"

consultas no accepta unas 40 aprox?.

Ayuda!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar