La cláusula WHERE:
WHERE City="Seattle"
Esta es la cláusula WHERE. Consta de un operador (DONDE) seguido de una expresión (ciudad = "Seattle").
SQL:ORDER BY:
Como Microsoft Excel, Access permite ordenar los resultados de la consulta en una hoja de datos. También puede especificar en la consulta cómo desea ordenar los resultados cuando se ejecuta la consulta, mediante una cláusula ORDER BY. Si utiliza una cláusula ORDER BY, es la última cláusula en la instrucción SQL.
Una cláusula ORDER BY contiene una lista de los campos que desea usar para la ordenación, en el mismo orden que desee aplicar las operaciones de ordenación.
Por ejemplo, suponga que desea que los resultados primero ordenados por el valor del campo empresa en orden descendente, y, si hay registros con el mismo valor para la empresa: siguiente ordenados por los valores en el campo dirección de correo electrónico en orden ascendente. La cláusula ORDER BY sería similar al siguiente:
ORDER BY Company DESC, [E-mail Address]
SQL:GROUP BY y HAVING:
A veces desea trabajar con datos resumidos, como el total de ventas en un mes o los elementos más costosos en un inventario. Para ello, aplique un función de agregado a un campo en la cláusula SELECT. Por ejemplo, si desea que la consulta para mostrar el recuento de las direcciones de correo electrónico enumeradas para cada empresa, la cláusula SELECT podría parecerse a lo siguiente:
SELECT COUNT([E-mail Address]), Company
Especificar los campos que no se usan en una función de agregado: cláusula The GROUP BY
Al usar funciones de agregado, normalmente debe crear también una cláusula GROUP BY. Una cláusula GROUP BY enumera todos los campos a los que no se aplica una función de agregado. Si las funciones de agregado se aplica a todos los campos en una consulta, no tiene que crear la cláusula GROUP BY.
Una cláusula GROUP BY inmediatamente después de la cláusula WHERE, o la cláusula FROM si no hay ninguna cláusula WHERE. Una cláusula GROUP BY enumera los campos tal y como aparecen en la cláusula SELECT.
Por ejemplo, siguiendo el ejemplo anterior, si la cláusula SELECT aplica una función de agregado a [dirección de correo electrónico] pero no para la empresa, la cláusula GROUP BY sería similar a lo siguiente:
GROUP BY Company
Limitar los valores agregados mediante criterios de grupo: la cláusula HAVING
Si desea usar criterios para limitar los resultados, pero el campo que desea aplicar los criterios se usa en una función de agregado, no puede usar una cláusula WHERE. En su lugar, use una cláusula HAVING. Una cláusula HAVING funciona como una cláusula WHERE, pero se usa para los datos agregados.
Por ejemplo, suponga que utiliza la función Promedio (que calcula el valor promedio) con el primer campo en la cláusula SELECT:
SELECT COUNT([E-mail Address]), Company
Si desea que la consulta para restringir los resultados según el valor de esa función CONTAR, no puede usar un criterio de ese campo en la cláusula WHERE. En su lugar, ponga los criterios en una cláusula HAVING. Por ejemplo, si solo desea que la consulta devuelva filas si hay más de las direcciones de correo una electrónico asociada a la empresa, la cláusula HAVING podría parecerse a lo siguiente:
HAVING COUNT([E-mail Address])>1
consulta unión:
El operador UNION permite combinar dos instrucciones SELECT en uno. Las instrucciones SELECT que combine deben tener el mismo número de campos de salida en el mismo orden y con los tipos de datos igual o compatible. Cuando se ejecuta la consulta, datos de cada conjunto de campos correspondientes se combinan en un campo de salida, para que el resultado de la consulta tiene el mismo número de campos como cada una de las instrucciones select.
Al usar el operador de UNIÓN, también puede especificar si los resultados de la consulta deben incluir filas duplicadas, si existe alguna, mediante la palabra clave TODO.
La sintaxis SQL básica para una consulta de unión que combina dos instrucciones SELECT es la siguiente:
SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;
Por ejemplo, suponga que tiene una tabla denominada productos y otra tabla denominada servicios. Ambas tablas tienen campos que contienen el nombre de la garantía de producto o servicio, el precio o garantizan la disponibilidad, y si ofrecen el producto o servicio de modo exclusivo. Aunque la tabla productos almacena información de garantía y la tabla almacena de servicios garantiza la información, la información básica es la misma (si un determinado producto o servicio incluye una promesa de calidad). Puede usar una consulta de unión, como la siguiente, para combinar los cuatro campos de las dos tablas:
SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;