ACCESS 2007 - Consulta condicional con dos condiciones por alternativa

He redactado la siguiente consulta y me tira el cartel de sintaxis no válida:

SiInm([zona]=5 Y [cochera]=no,[Cuota Pura]-180, SiInm ([zona]<5 Y [cochera]=no, [cuota pura]-120, [cuota pura])).

Me parece que no le gusta la "y" en la expresión.

2 Respuestas

Respuesta
2

Además que en vez de comas para separar criterios tienes que usar ;

Respuesta
2

Lo que no le "gusta" es que no le pongas comillas a los criterios de texto...

SiInm([zona]=5 Y [cochera]="no",Cuota Pura]-180, SiInm ([zona]<5 Y [cochera]="no", [cuota pura]-120, [cuota pura])).

Y si no le gusta Y, siempre puedes probar con And...

Perfecto, parece que era eso. Y que hay si quiero agregar una condición más:

Cuota sin SAP: SiInm([zona]=5 Y [cochera] Como "no" O [tipo] No Como "Baldio",[Cuota Pura]-180,SiInm([zona]<5 Y [cochera] Como "no" O [tipo] No Como "Baldio",[cuota pura]-120,[cuota pura]))

en este caso me consideró la condición Zona y Cochera pero no la Tipo. 

Varias cosas:

1º/ Si combinas varios operadores Y y O, acostúmbrate a usar paréntesis, pues de lo contrario difícilmente vas a obtener el resultado que esperas. Piensa en ello como en matemáticas con la suma y la multiplicación: no es lo mismo poner 2+3x4, que es igual a 14, que poner (2+3)x4, que es igual a 20.

Con Y y O pasa lo mismo: tal como pones la primera condición, se entiende que se cumple cuando la zona es 5 Y la cochera es no (las dos juntas), o cuando tipo no es baldio. Pero a lo mejor lo que quieres es que se cumpla si el tipo es 5 y una de las dos: cochera igual a no o tipo distinto de baldío...

2º/ Si no vas a usar caracteres comodín, no uses el operador COMO, usa = o <>

Gracias! Le estoy dando vuelta pero no me toma las condiciones, solo la [Cuota Pura] - 180 o [Cuota Pura] - 120, según corresponda.

Es como bien dices tiene que tomar ZONA y NO COCHERA o ZONA y NO BALDIO. Lo he expresado así:

Cuota sin SAP: SiInm(([zona]=5 Y [cochera] = "no") O ([zona]=5 Y [tipo] No Como "baldio"),[Cuota Pura]-180,SiInm(([zona]<5 Y [cochera] Como "no") O ([zona]<5 Y [tipo] No Como "baldio"),[cuota pura]-120,[cuota pura]))

Perdón he usado = y <> (en lugar de no como) siguiendo la recomendación... 

Lo haces difícil...

Cuota sin SAP: SiInm([zona]=5 Y ([cochera] = "no" O  [tipo]<>"baldio"),[Cuota Pura]-180,SiInm([zona]<5 Y ([cochera] ="no" O [tipo] <> "baldio"),[cuota pura]-120,[cuota pura]))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas