Somos Expertos Access. Contacto atravez de Skype Skype logo expertos_7

Está en el conjunto o no esta. El uso de las funciones (IN and NOT IN)

Esta es una de dos partes, sobre cómo usted puede hacer sus consultas mucho más eficientes. En la primera parte, nos fijaremos si es IN o NOT IN. La segunda parte la pueden encontrar aquí.

¿Qué es la cláusula IN?

La cláusula IN es un miembro de las sintaxis del lenguaje SQL y se puede utilizar en la cláusula WHERE para especificar los datos que desea incluir o excluir. (Hay otros usos también, incluidos en esta primera parte).

Dos Sintaxis Alternativas

Usted puede utilizar la cláusula IN especificando los criterios incluidos en la consulta. Por ejemplo, digamos que usted desea una lista de todos los pedidos del IL, Wisconsin y Minnesota.

 Podríamos hacerlo de esta manera:

El problema con la consulta anterior es agregar un montón de estados que hacen una instrucción SQL muy larga. En su lugar se puede utilizar la cláusula IN como una expresión equivalente a la consulta anterior:

Pero ¿qué pasa si usted no quiere las órdenes de esos estados? Se pueden combinar  con IN o  NOT IN como en la siguiente consulta:

Sobre cargas

Los ejemplos anteriores son grandes maneras de utilizar la cláusula IN, pero usted puede sobre cargar su código mediante el uso de una instrucción SELECT en lugar  de enumerar los valores, de la siguiente manera:

Observe como no utilicé el INNER JOIN en mi instrucción SELECT y en cambio yo uso la cláusula IN para obtener todos los pedidos (table tblOrders) de los clientes que pertenecen a los estados en cuestión.

Utilice IN para consultar en las tablas y no en la instrucción de SELECT.

Hay muchas situaciones en las que se necesita evitar un JOIN en su consulta, aquí les muestro dos:

  1. Es necesario que los usuarios editen los datos de sus formularios y usando un JOIN solo harán que sea de lectura.
  2. Una o más tablas no se almacenan juntas. Por ejemplo: la tabla Order podría estar en el  SQL Server y la tabla clientes localmente en Access.Un JOIN de este tipo sería lento y no es óptimo.

Utilice IN para filtrar sus formularios

Una de mis técnicas favoritas es filtrar un formulario utilizando la cláusula WHERE de la instrucción DoCmd.OpenForm. Por ejemplo, el otro día yo estaba construyendo un panel para un cliente bancario que incluye un recuento de los préstamos en mora en el sistema. Hice el número del banco clickeable, lo que permite a los usuarios lanzar el evento frmLoans de los formularios con la lista de los préstamos en mora con la siguiente línea:

:

Tenga en cuenta que los datos están contenidos en una vista de SQL Server que está vinculada en Access Front-End. En lugar de un JOIN a la vista que puede provocar un rendimiento inferior al óptimo, la cláusula IN asegurar que la lista de LoanIDs se evalué una sola vez.

Utilice IN para evitar duplicados en las consultas que tienen una cláusula GROUP BY

Muchas veces usted verá una consulta que contiene una cláusula GROUP BY que necesita registros únicos, pero usted va a encontrar varios registros debido a los JOINS con otras tablas. Considere el uso de la cláusula IN en lugar de un JOIN a una o más tablas.

¿Entonces que prefiere utilizar IN o NOT IN?

¡Manténgase atento para la segunda parte!

Acerca de

Juan Soto es un desarrollador senior de Access en IT Impact Inc. y un MVP de Microsoft Access y se especializa en Access con bases de datos de SQL Server. Su pasión por el acceso lo ha llevado ayudar a una amplia gama de empresas a establecer un entorno seguro, estable y eficiente con SQL Server. Él es un orador frecuente en los grupos de usuarios de Access en todo el país y recientemente habló en el Orange County SQL Saturday # 73. Si desea que Juan hable en su próxima reunión de grupo, puede ponerse en contacto con él aquí.

Publicado en Access Help, Access Queries, Uncategorized, VBA
0 Comentarios en “Está en el conjunto o no esta. El uso de las funciones (IN and NOT IN)
    1 Pings/Trackbacks para "Está en el conjunto o no esta. El uso de las funciones (IN and NOT IN)"
    1. Using EXISTS clause in Microsoft Access | EXPERTOS MICROSOFT ACCESS +1-773-809-5456 dice:

      […] es la segunda parte de una seria de dos partes de cláusulas de SQL. Juan fue el autor de la primera parte donde trato el tema de IN(). Ahora le hablare sobre otro tema un poco parecido, la cláusula […]

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    *

     

    Quienes Somos

    ExpertosMicrosoftAccess.com es un servicio de la empresa IT Impact, Inc., una compañía de programación y servicios para empresas en Latino América. Ofrecemos servicios en .Net, SQL Server y Microsoft Access. Muchos de nuestros desarrolladores han obtenido el galardón de Access MVP, un título proveído por Microsoft a aquellos que han hecho aportes a la comunidad y que han demostrado tener conocimientos superiores del producto.

    Nuestro Equipo

    • Le ayudamos a "Descubrir el poder de sus datos™" con reportes y sistemas de Access excepcionales .
    • Creamos soluciones de bases de datos personalizadas utilizando Microsoft Access y / o SQL Server.
    • Nuestros consultores ganaron sus estrellas en las empresas de servicios y/o manufactura antes de convertirse en programadores.

    Blogs anteriores