Paréntesis en XpertQuery (mr)

XpertMart (mr) ahora le permite insertar paréntesis en los queries que se hacen con XpertQuery (mr). Esto le permite hacer queries mucho más complejos y por lo tanto más poderosos.



Para entender la importancia de los paréntesis presentamos el siguiente ejemplo sin paréntesis:





Aparentemente este query busca traer los datos de los recibos que sean de un folio mayor a 10000014, y que la fecha de los recibos sean entre los parámetros de fecha que el usuario va a ingresar a la hora de correr el query, y que los recibos sean de la tienda 2 o 10.



Pero la base de datos agrupa estas condiciones dándo prioridad a las funciones "Y" (AND) antes que la función "O" (o). Si representamos esto en el mismo lenguaje sencillo del primer párafo podemos ver como la base de datos nos va a sorprender. Esto es lo que lee la base de datos:

Trae los datos de los recibos...



que sean de un folio mayor a 10000014, y que la fecha de los recibos sean entre los parámetros de fecha que el usuario va a ingresar a la hora de correr el query, y que los recibos sean de la tienda 2



o



que sean de la tienda 10



¡Sorpresa! Si los recibos son de la tienda 10, no importa ni su folio ni su fecha.



Bueno la solución a esto consiste en agregar al query los paréntesis que se requieren para aclarar como queremos agrupar estas condiciones.



En la gráfica de los queries podemos apreciar que ahora hay dos columnas en dónde podemos poner paréntesis. Si deseamos usar queries sin paréntesis basta con no hacer nada con el espacio de paréntesis. Si queremos poner un párentesis podemos dar click en el espacio de los paréntesis. Aparece un menú con opciones de uno, dos o tres paréntesis, o podemos escribir manualmente la cantidad de paréntesis que deseamos. Asi se ve el menú de paréntesis de lado derecho:





Aqui vemos un ejemplo de empezar a poner paréntesis:





En el espacio informativo abajo, se puede aprecia que al poner paréntesis nos indica si hay la misma cantidad de paréntesis de apertura que de cierre. Si no estan balanceados nos avisa.



Corregiendo el query anterior con los paréntesis requerido para aclarar lo que queremos exactamente de la base de datos queda asi:





Pasando este query con paréntesis al lenguaje sencillo usado arriba quede de esta manera:



Trae los datos de los recibos que:



sean de un folio mayor a 10000014



y



que la fecha de los recibos sean entre los parámetros de fecha que el usuario va a ingresar a la hora de correr el query



y



(que los recibos sean de la tienda 2    o    10)



Que es exactamente lo que queremos traer de la base de datos.



Bajo la pestaña de SQL podemos ver en sí dónde quedan los paréntesis dentro de la parte de condición del query.




Si hay alguna duda en cuando al efecto de poner párentesis se puede consultar el comando SQL en si y aclarar el efecto de poner unos paréntesis.



La regla es que si hay alguna duda en cuanto a la secuencia de evaluación de las condiciones del query, es mejor poner unos paréntesis y dejarlo muy claro.



NOTA: Si solo se usan operadores de un solo tipo, esto es puros operadores "Y" o puros operadores "O", no hacen falta paréntesis. Si se mezclan operadores "Y" y "O" debe usar paréntesis para aclarar que condiciones se agrupan antes que otros.



Fin.



Empresas en México, Guatemala, El Salvador, Panama, Honduras, Paraguay, Colombia y USA diariamente usan nuestro software XpertMart (mr) para sus operaciones de venta al detalle. Atendemos todos los países de Latino América y el Caribe. Disponible en Chile, Venezuela, Uruguay, Argentina y Costa Rica.