40
Access SQL: conceptos básicos, vocabulario y sintaxis IMPORTANTE Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades . Para su referencia, puede encontrar la versión en inglés de este artículo aquí . Si desea recuperar datos de una base de datos, puede solicitar los datos mediante el Lenguaje de consulta estructurado o SQL. SQL es un lenguaje de computación que se asemeja al inglés y que los programas de bases de datos comprenden. Cada consulta que se ejecuta usa SQL en segundo plano. Si comprende el funcionamiento de SQL podrá crear mejores consultas además de solucionar una consulta que no brinda los resultados deseados. Éste es uno de varios artículos acerca de Access SQL. En este artículo se describe el uso básico de SQL para seleccionar datos y se usan ejemplos para ilustrar la sintaxis de SQL. En este artículo ¿Qué es SQL?

Access SQL

Embed Size (px)

DESCRIPTION

En este documento encontraremos las distintas funciones y sintaxis de sql para la manipulacion de una base datos

Citation preview

Page 1: Access SQL

Access SQL: conceptos básicos, vocabulario y sintaxisIMPORTANTE   Este artículo se ha traducido con traducción automática; vea la declinación de

responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Si desea recuperar datos de una base de datos, puede solicitar los datos mediante el Lenguaje de

consulta estructurado o SQL. SQL es un lenguaje de computación que se asemeja al inglés y que los

programas de bases de datos comprenden. Cada consulta que se ejecuta usa SQL en segundo plano.

Si comprende el funcionamiento de SQL podrá crear mejores consultas además de solucionar una

consulta que no brinda los resultados deseados.

Éste es uno de varios artículos acerca de Access SQL. En este artículo se describe el uso básico de

SQL para seleccionar datos y se usan ejemplos para ilustrar la sintaxis de SQL.

En este artículo¿Qué es SQL?

Cláusulas SQL básicas: SELECT, FROM y WHERE

Ordenar los resultados: ORDER BY

Trabajar con datos resumidos: GROUP BY y HAVING

Combinar los resultados de las consultas: UNION

Page 2: Access SQL

¿Qué es SQL?SQL es un lenguaje informático para trabajar con conjuntos de hechos y las relaciones entre ellos.

Programas de bases de datos relacionales, como Microsoft Office Access, utilizan SQL para trabajar

con datos. A diferencia de muchos lenguajes de programación, SQL no es difícil de leer y entender,

incluso para un principiante. Al igual que muchos lenguajes de computación, SQL es un estándar

internacional que es reconocido por los organismos de normalización como ISO y ANSI.

“SQL no es difícil de leer y entender, incluso para un usuario inexperto.”

Utilice SQL para describir conjuntos de datos que pueden ayudarle a responder preguntas. Cuando

se utiliza SQL, debe utilizar la sintaxis correcta. Sintaxis es el conjunto de reglas por las que se

combinan correctamente los elementos de un idioma. Sintaxis SQL se basa en sintaxis inglés y

utiliza muchos de los mismos elementos de Visual Basic para Aplicaciones sintaxis (VBA).

Por ejemplo, una simple instrucción SQL que recupera una lista de los apellidos de contactos cuyo

nombre es María podría ser similar a esto:

SELECT Last_Name

FROM Contacts

WHERE First_Name = 'Mary';

NOTA  SQL no se usa solo para manipular datos, sino también para crear y modificar el diseño de

los objetos de una base de datos (por ejemplo, las tablas). La parte de SQL que se usa para crear y

modificar objetos de una de base de datos se denomina lenguaje de definición de datos (DDL). En

este tema no se describe el DDL. Para obtener más información, vea el tema acerca de cómo crear o

modificar tablas o índices mediante una consulta de definición de datos.

Instrucciones SELECT

Para describir un conjunto de datos mediante SQL, escriba una instrucción SELECT. Una

instrucción SELECT contiene una descripción completa del conjunto de datos que desea obtener de

una base de datos. Incluye lo siguiente:

Qué tablas contienen los datos.

Cómo se relacionan los datos de orígenes diferentes.

Qué campos o cálculos proporcionarán los datos.

Criterios que los datos deben cumplir para ser incluidos.

Si se deben ordenar los datos y, en caso de ser así, cómo deben ordenarse.

Cláusulas SQL

Page 3: Access SQL

Al igual que una frase, una instrucción SQL tiene cláusulas. Cada cláusula realiza una función para

la instrucción SQL. Algunas cláusulas son obligatorias en una instrucción SELECT. En la siguiente

tabla se enumeran las cláusulas SQL más comunes.

Términos de SQL

Cada cláusula SQL consta de términos, comparables a diferentes partes de la oración. En la siguiente

tabla se enumeran los tipos de términos de SQL.

Término de

SQL

Parte de la oración

comparable

Definición Ejemplo

identificador sustantivo Nombre que se usa para identificar un objeto de la base

de datos, como el nombre de un campo.

Clientes.[Número de

teléfono]

operador verbo o adverbio Palabra clave que representa o modifica una acción. Como

constante sustantivo Valor que no cambia, como un número o un valor nulo

(NULL).

42%

expresión adjetivo Combinación de identificadores, operadores,

constantes y funciones que se evalúa como un valor

único.

> = Productos.[Precio

por unidad]

Inicio de la página

Cláusulas SQL básicas: SELECT, FROM y WHEREUna instrucción SQL tiene el formato general:

Cláusula

SQL

Acción Necesario

seleccionar Muestra una lista de los campos que contienen datos de interés. Yes

De Muestra las tablas que contienen los campos de la cláusula SELECT. Yes

donde: Especifica los criterios de campo que cada registro debe cumplir para poder ser incluido

en los resultados.

No

ORDER BY Especifica la forma de ordenar los resultados. No

Agrupar por En una instrucción SQL que contiene funciones de agregado, muestra los campos que

no se resumen en la cláusula SELECT.

Solo si están estos

campos

HAVING En una instrucción SQL que contiene funciones de agregado, especifica las condiciones

que se aplican a los campos que se resumen en la instrucción SELECT.

No

Page 4: Access SQL

SELECT field_1

FROM table_1

WHERE criterion_1

;

NOTAS  

Access pasa por alto los saltos de línea en una instrucción SQL. Sin embargo, conviene usar una línea

para cada cláusula para que las instrucciones SQL sean más fáciles de leer por todos.

Cada una de las instrucciones SELECT termina con un punto y coma (;). El punto y coma (;) puede

aparecer al final de la última cláusula o solo en una línea al final de la instrucción SQL.

Un ejemplo en Access

A continuación se muestra el aspecto que podría tener en Access una instrucción SQL para una

consulta de selección simple:

1. Cláusula SELECT

2. Cláusula FROM

3. Cláusula WHERE

En este ejemplo de instrucción SQL, se indica "Seleccionar los datos almacenados en los campos

Dirección de correo electrónico y Empresa de la tabla llamada Contactos, específicamente aquellos

registros en los cuales el valor del campo Ciudad sea Seattle".

A continuación se incluye un ejemplo y se describe cada cláusula para mostrar cómo funciona la

sintaxis de SQL.

Cláusula SELECT

SELECT [E-mail Address], Company

Ésta es la cláusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores

([Dirección de correo electrónico] y Empresa).

Page 5: Access SQL

Si un identificador contiene espacios o caracteres especiales (como "Dirección de correo

electrónico"), se debe escribir entre corchetes.

Una cláusula SELECT no tiene que mencionar las tablas que contienen los campos y no puede

especificar las condiciones que deben cumplir los datos que se van a incluir.

La cláusula SELECT siempre aparece antes que la cláusula FROM en una instrucción SELECT.

Cláusula FROM

FROM Contacts

Ésta es la cláusula FROM. Se compone de un operador (FROM) seguido de un identificador

(Contactos).

Una cláusula FROM no enumera los campos que se van a seleccionar.

Cláusula WHERE

WHERE City="Seattle"

Ésta es la cláusula WHERE. Se compone de un operador (WHERE) seguido de un identificador

(Ciudad="Seattle").

NOTA  A diferencia de las cláusulas SELECT y FROM, la cláusula WHERE no es un elemento

obligatorio en una instrucción SELECT.

Puede realizar muchas de las acciones que SQL permite realizar mediante las cláusulas SELECT,

FROM y WHERE. En los siguientes artículos adicionales encontrará más información sobre cómo

usar estas cláusulas:

Access SQL: cláusula SELECT

Access SQL: cláusula FROM

Access SQL: cláusula WHERE

Inicio de la página

Ordenar los resultados: ORDER BYAl igual que Microsoft Office Excel, Access permite ordenar los resultados de la consulta en una

hoja de datos. Además, puede especificar en la consulta cómo desea ordenar los resultados al

Page 6: Access SQL

ejecutar la consulta mediante una cláusula ORDER BY. Si usa una cláusula ORDER BY, ésta será la

última cláusula en la instrucción SQL.

Una cláusula ORDER BY contiene una lista de los campos que desea usar para ordenar, en el mismo

orden en el que desea aplicar las operaciones de ordenación.

Por ejemplo, suponga que desea ordenar los resultados por el valor del campo Empresa en orden

descendente y,  en caso de que haya registros con el mismo valor para Empresa , desea ordenarlos

además por el valor indicado en el campo Dirección de correo electrónico en orden ascendente. La

cláusula ORDER BY podría ser similar a la siguiente:

ORDER BY Company DESC, [E-mail Address]

NOTA  De forma predeterminada, Access ordena los valores de forma ascendente (A-Z, de menor a

mayor). Use la palabra clave DESC para ordenar los valores en orden descendente.

Para obtener más información acerca de la cláusula ORDER BY, vea el tema sobre la cláusula

ORDER BY.

Inicio de la página

Trabajar con datos resumidos: GROUP BY y HAVINGA veces, desea trabajar con datos resumidos, como las ventas totales de un mes o los elementos más

caros en el inventario. Para ello, debe aplicar una función de agregado a un campo en la cláusula

SELECT. Por ejemplo, si desea que la consulta muestre la cantidad de direcciones de correo

electrónico para cada una de las empresas, la cláusula SELECT debería parecerse a la siguiente:

SELECT COUNT([E-mail Address]), Company

Las funciones de agregado que se pueden usar dependen del tipo de datos del campo o la expresión

que desea emplear. Para obtener más información acerca de las funciones de agregado disponibles,

vea el tema sobre lasfunciones de agregado de SQL.

Especificar campos que no se usan en una función de agregado: cláusula GROUP BY

Al usar las funciones de agregado, normalmente debe crear una cláusula GROUP BY. Una cláusula

GROUP BY muestra una lista de todos los campos a los que no se aplica una función de agregado.

Page 7: Access SQL

Si aplica las funciones de agregado a todos los campos de una consulta, no es necesario crear la

cláusula GROUP BY.

Una cláusula GROUP BY se incluye inmediatamente después de la cláusula WHERE o la cláusula

FROM si no hay una cláusula WHERE. La cláusula GROUP BY muestra una lista de los campos

que aparecen en la cláusula SELECT.

Por ejemplo, siguiendo con el ejemplo anterior, si la cláusula SELECT aplica una función de

agregado a [Dirección de correo electrónico] pero no a Empresa, la cláusula GROUP BY sería

similar a la siguiente:

GROUP BY Company

Para obtener más información acerca de la cláusula GROUP BY, vea el tema sobre la cláusula

GROUP BY.

Limitar los valores de agregado mediante los criterios de agrupación: cláusula HAVING

Si desea usar criterios para limitar sus resultados, pero el campo al que desea aplicar el criterio se

usa en una función de agregado, no puede usar una cláusula WHERE. En su lugar, debe usar una

cláusula HAVING. La cláusula HAVING funciona como la cláusula WHERE, pero se usa para los

datos agregados.

Por ejemplo, suponga que usa la función COUNT (que devuelve un número de filas) con el primer

campo de la cláusula SELECT:

SELECT COUNT([E-mail Address]), Company

Si desea que la consulta limite los resultados según el valor de la función COUNT, no puede usar un

criterio para dicho campo en la cláusula WHERE. Por el contrario, debe incluir el criterio en una

cláusula HAVING. Por ejemplo, si solo desea que la consulta indique las filas en caso de que exista

más de una dirección de correo electrónico asociada con la empresa, la cláusula HAVING debería

ser similar a la siguiente:

HAVING COUNT([E-mail Address])>1

NOTA  Una consulta puede incluir una cláusula WHERE y una cláusula HAVING: los criterios para

los campos que no se usan en una función de agregado se corresponden con la cláusula WHERE y

los criterios de los campos que se usan en las funciones de agregado se corresponden con la cláusula

HAVING.

Para obtener más información acerca de la cláusula HAVING, vea el tema sobre la cláusula

HAVING.

Page 8: Access SQL

Inicio de la página

Combinar los resultados de la consulta: UNIONSi desea revisar todos los datos obtenidos en conjunto de varias consultas de selección similares,

como un conjunto combinado, use el operador UNION.

El operador UNION le permite combinar dos instrucciones SELECT en una. Las instrucciones

SELECT que combine deben tener el mismo número de campos de resultado, en el mismo orden y

con el mismo tipo de datos o con tipos de datos compatibles. Al ejecutar la consulta, los datos de

cada conjunto de campos correspondientes se combinan en un único campo de resultado de modo

que el resultado de la consulta tenga el mismo número de campos que cada una de las instrucciones

de selección.

NOTA  Para las consultas de unión, los tipos de datos Texto y Número son compatibles.

Si usa el operador UNION, también puede usar la palabra clave ALL para especificar si los

resultados de la consulta deben incluir las filas duplicadas, si existe alguna.

La sintaxis básica de SQL 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, supongamos que tiene una tabla denominada Productos y otra tabla denominada

Servicios. Ambas tablas tienen campos que contienen el nombre del producto o servicio, el precio, la

disponibilidad de garantía del servicio o de garantía del producto, y si el producto o servicio se

ofrece de forma exclusiva. Aunque en la tabla Productos se almacena información de garantía del

producto y en la tabla Servicios se almacena información de garantía del servicio, la información

básica es la misma (si un producto o servicio determinado incluye una garantía de calidad). Puede

usar una consulta de unión, como la que se muestra a continuación, 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

Page 9: Access SQL

FROM Services

;

Access SQL: cláusula SELECTÉste es uno de varios artículos acerca de Access SQL. Este artículo describe cómo escribir una

cláusula SELECT y brinda ejemplos para demostrar las diferentes técnicas que puede usar cuando

las escribe.

Para obtener información general sobre Access SQL, vea el artículo Access SQL: conceptos básicos,

vocabulario y sintaxis. Para obtener más información acerca de otras partes de Access SQL, consulte

la sección Vea también.

En este artículoSeleccionar campos: la cláusula SELECT

Seleccionar todos los campos

Seleccionar valores distintos

Usar nombres sustitutos para los campos o expresiones: la palabra clave

AS

Seleccionar mediante una expresión

Seleccionar campos: la cláusula SELECTUna instrucción SELECT se inicia normalmente con una cláusula SELECT. Una cláusula SELECT

se usa para especificar los nombres de los campos que tienen datos que desea usar en una consulta.

Page 10: Access SQL

También puede usar expresión en lugar de campos o además de ellos. Incluso puede usar otra

instrucción SELECT como un campo, esto se conoce como subconsulta.

Suponga que desea conocer los números de teléfono de sus clientes. Suponiendo que el campo que

almacena los números de teléfono de los clientes se llama txtTelClien, la cláusula SELECT se verá

de la siguiente forma:

SELECT [txtTelClien]

Puede escribir el nombre entre corchetes. Si el nombre no contiene espacios ni caracteres especiales

(como signos de puntuación), los corchetes son opcionales. Si el nombre contiene espacios o

caracteres especiales, debe utilizar los corchetes.

SUGERENCIA  Un nombre que contiene espacios resulta más fácil de leer y le permite ahorrar

tiempo cuando diseña formularios e informes, pero es posible que luego deba escribir más al

especificar instrucciones SQL. Debe tener en cuenta este dato cuando asigne un nombre a los objetos

de la base de datos.

Si la instrucción SQL tiene dos o más campos con el mismo nombre, debe agregar el nombre de

cada origen de datos del campo al nombre del campo en la cláusula SELECT. Usará el mismo

nombre para los orígenes de datos que ha usado en la cláusula FROM.

Volver al principio

Seleccionar todos los camposCuando desea incluir todos los campos de un origen de datos, puede enumerar todos los campos

individualmente en la cláusula SELECT o bien puede usar el carácter comodín asterisco (*). Cuando

usa el asterisco, Access determina los campos que contiene el origen de datos cuando se ejecuta la

consulta e incluye todos esos campos en la consulta. Esto le permite estar seguro de que la consulta

se actualizará en caso de que se agreguen nuevos campos en el origen de datos.

Puede usar el asterisco con uno o más orígenes de datos en una instrucción SQL. Si usa el asterisco y

hay varios orígenes de datos, debe incluir el nombre del origen de datos junto con el asterisco, de

modo que Access pueda determinar desde qué origen de datos debe incluir todos los campos.

Por ejemplo, suponga que desea seleccionar todos los campos de la tabla Pedidos pero sólo la

dirección de correo electrónico de la tabla de Contactos. La cláusula SELECT podría ser similar a la

siguiente:

SELECT Pedidos.*, Contactos.[Dirección de correo electrónico]

Page 11: Access SQL

NOTA  Realice un seguimiento cada vez que usa el asterisco. Si más adelante se agregan al origen

de datos nuevos campos que no han sido previstos, los resultados de la consulta podrían no ser los

deseados.

Volver al principio

Seleccionar valores distintosSi sabe que la instrucción seleccionará datos redundantes y prefiere ver sólo los valores distintos,

puede usar la palabra clave DISTINCT en la cláusula SELECT. Por ejemplo, suponga que cada uno

de los clientes representa varios intereses diferentes, algunos de los cuales usan el mismo número de

teléfono. Si desea asegurarse de que sólo se vea cada uno de los números de teléfono una vez, la

cláusula SELECT debe ser similar a la siguiente:

SELECT DISTINCT [txtTelClien]

Volver al principio

Usar nombres sustitutos para los campos o expresiones: la palabra clave ASPuede cambiar la etiqueta que se muestra para cualquier campo en la vista de hoja de datos usando la

palabra clave AS y un alias de campo en la cláusula SELECT. Un alias de campo es un nombre que

se asigna a un campo en una consulta para que las consultas sean más fáciles de leer. Por ejemplo, si

desea seleccionar datos de una campo llamado txtTelClien y el campo contiene los números de

teléfono de los clientes, puede mejorar la legibilidad de los resultados usando un alias de campo en

la instrucción SELECT de la siguiente manera:

SELECT [txtTelClien] AS [Número de teléfono del cliente]

NOTA  Debe usar un alias de campo cuando se usa una expresión en una cláusula SELECT.

Volver al principio

Seleccionar mediante una expresión

Page 12: Access SQL

A veces necesita realizar cálculos según los datos o recuperar sólo una parte de los datos de un

campo. Por ejemplo, suponga que desea obtener el año de nacimiento de los clientes según los datos

del campo Fecha de nacimiento de la base de datos. La cláusula SELECT se asemejará a la

siguiente:

SELECT ParcFecha("aaaa",[FechaNacimiento]) AS [AñoNacimiento]

Esta expresión consta de la función ParcFecha y dos argumentos  , "aaaa" (una constante) y

[FechaNacimiento] (un identificador).

Puede usar cualquier expresión válida como campo, siempre que la expresión genere un valor único

cuando se especifica un valor de entrada único.

Access SQL: cláusula FROMEste artículo pertenece al conjunto de artículos sobre Access SQL. En este artículo se describe cómo

escribir una cláusula FROM y se usan ejemplos para ilustrar distintas técnicas que se pueden usar en

una cláusula FROM.

En una instrucción SELECT, puede especificar los orígenes de datos en la cláusula FROM. La

cláusula FROM también puede contener una operación JOIN. Una operación JOIN se usa para unir y

combinar datos de dos orígenes de datos, como dos tablas o una tabla y una consulta.

Para obtener información general sobre Access SQL, vea el artículo Access SQL: conceptos básicos,

vocabulario y sintaxis. Para obtener más información sobre otras partes de Access SQL, vea la

sección Vea también.

En este artículoEspecificar orígenes de datos

Usar nombres sustitutos para orígenes de datos

Combinar datos relacionados

Especificar orígenes de datos

Page 13: Access SQL

En una instrucción SELECT, la cláusula FROM especifica las tablas o consultas que contienen los

datos que usará la cláusula SELECT.

Supongamos que desea saber el número de teléfono de un cliente específico. Si la tabla que contiene

el campo que almacena estos datos se llamara tblCliente, la cláusula FROM sería similar a:

FROM tblCliente

Puede escribir el nombre entre corchetes. Si el nombre no contiene espacios ni caracteres especiales

(como signos de puntuación), los corchetes son opcionales. Si el nombre contiene espacios o

caracteres especiales, debe usar los corchetes.

SUGERENCIA  Un nombre que contiene espacios resulta más fácil de leer y le permite ahorrar

tiempo cuando diseña formularios e informes, pero es posible que luego deba escribir más al

especificar instrucciones SQL. Debe tener en cuenta este dato cuando asigne un nombre a los objetos

de la base de datos.

Volver al principio

Usar nombres sustitutos para orígenes de datosPuede usar un nombre diferente para hacer referencia a una tabla en una instrucción SELECT

mediante un alias de tabla en la cláusula FROM. Un alias de tabla es un nombre que se asigna a un

origen de datos en una consulta cuando se usa una expresión como un origen de datos, o para que sea

más fácil escribir y leer la instrucción SQL. Esto puede ser muy útil si el nombre del origen de datos

es largo o difícil de escribir, especialmente cuando hay varios campos de distintas tablas que tienen

el mismo nombre.

Por ejemplo, si desea seleccionar datos de dos campos, ambos con el nombre ID, uno de los cuales

procede de la tabla tblCliente y el otro de la tabla tblPedido, la cláusula SELECT podría parecerse a:

SELECT [tblCliente].[ID], [tblPedido].[ID]

Al usar alias de tabla en la cláusula FROM, puede hacer que sea más fácil escribir la consulta. Así, la

cláusula FROM podría ser similar a:

FROM [tblCliente] AS [C], [tblPedido] AS [P]

A continuación, puede usar estos alias de tabla en la cláusula SELECT de esta manera:

SELECT [C].[ID], [P].[ID]

Page 14: Access SQL

NOTA  Cuando se usa un alias de tabla, puede hacer referencia a la tabla en la instrucción SQL

mediante el alias o mediante el nombre completo de la tabla.

Volver al principio

Combinar datos relacionadosCuando necesite combinar pares de registros de dos orígenes de datos en un registro único en los

resultados de una consulta, puede realizar una combinación. Una combinación es una operación SQL

que especifica cómo se relacionan dos orígenes de datos y si se deben incluir los datos de un origen

si no hay ningún dato correspondiente desde el otro origen.

Para combinar la información de dos orígenes de datos, debe realizar una operación de combinación

en el campo que tienen en común. Cuando los valores almacenados en este campo coinciden, los

datos de los registros se combinan en los resultados.

Además de la combinación de datos, también se puede usar una combinación para especificar si se

incluirán registros de cualquier tabla en el caso de que no haya ningún registro correspondiente en la

tabla relacionada.

Por ejemplo, supongamos que desea usar los datos de dos tablas en una consulta: tblCliente y

tblPedido. Las dos tablas tienen un campo, IDCliente, que identifica a un cliente. Cada uno de los

registros de la tabla tblCliente puede tener uno o más registros correspondientes en la tabla tblPedido

y los valores correspondientes pueden estar determinados por los valores del campo IDCliente.

Si desea combinar las tablas de modo que la consulta combine los registros de las tablas y excluya

registros de cada tabla si no hay ningún registro correspondiente en la otra tabla, la cláusula FROM

puede ser similar a (se agregó un salto de línea aquí para mejorar la legibilidad):

FROM [tblCliente] INNER JOIN [tblPedido]

ON [tblCliente].[IDCliente]=[tblPedido].[IDCliente]

En Microsoft Office Access, las combinaciones se producen en la cláusula FROM de una instrucción

SELECT. Hay dos tipos de combinaciones: combinaciones internas y combinaciones externas. En

las siguientes secciones se explican estos dos tipos de combinaciones.

Combinaciones internas

Las combinaciones internas son el tipo de combinación más común. Cuando se ejecuta una consulta

con una combinación interna, los únicos registros que se incluyen en los resultados de la consulta

son los registros en los que existe un valor común en las dos tablas combinadas.

Una combinación interna tiene la siguiente sintaxis (se agregó un salto de línea aquí para mejorar la

legibilidad):

Page 15: Access SQL

FROM tabla1 INNER JOIN tabla2

ON tabla1.campo1 opcomp tabla2.campo2

En la siguiente tabla se describen las diferentes partes de una operación INNER JOIN.

Parte Descripción

tabla1,tabla2 Nombres de las tablas cuyos registros se combinan.

campo

1,campo2

Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismo tipo de

datos y contener la misma clase de datos, pero pueden tener nombres distintos.

opcomp Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Combinaciones externas

Las combinaciones externas son similares a las combinaciones internas porque indican a una

consulta cómo combinar información a partir de dos orígenes. Son diferentes ya que también

especifican si se incluirán datos donde no hay ningún valor común. Las combinaciones externas son

direccionales: se puede especificar si incluir todos los registros del primer origen de datos

especificado en la combinación (denominada combinación izquierda o left join), o incluir todos los

registros del segundo origen de datos en la combinación (denominada combinación derecha o right

join).

Una combinación externa tiene la siguiente sintaxis:

FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2

ON tabla1.campo1opcomp tabla2.campo2

En la siguiente tabla se describen las diferentes partes de las operaciones LEFT JOIN y RIGHT

JOIN.

Parte Descripción

tabla1,tabla2 Nombres de las tablas cuyos registros se combinan.

campo

1,campo2

Nombres de los campos que se combinan. Estos campos deben ser del mismo tipo de datos y contener la

misma clase de datos, pero pueden tener nombres distintos.

opcomp Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Page 16: Access SQL

Access SQL: cláusula WHEREÉste es uno de varios artículos acerca de Access SQL. Este artículo describe cómo escribir una

cláusula WHERE y brinda ejemplos para demostrar las diferentes técnicas que puede usar en una

cláusula WHERE.

En una instrucción SQL, la cláusula WHERE especifica los criterios que deben cumplir los valores

de campo para los registros que contienen los valores que se van a incluir en los resultados de la

consulta.

Para obtener información general sobre Access SQL, vea el artículo Access SQL: conceptos básicos,

vocabulario y sintaxis. Para obtener más información acerca de otras partes de Access SQL, consulte

la sección Vea también.

En este artículoLimitar los resultados mediante la especificación de criterios

Sintaxis de la cláusula WHERE

Usar la cláusula WHERE para combinar orígenes de datos

Limitar los resultados mediante la especificación de criteriosCuando desea usar datos para limitar el número de registros que se devuelven en una consulta, puede

usar criterio. Un criterio de consulta es similar a una fórmula,  se trata de una cadena que puede

constar de referencias de campo, operador y constante. Los criterios de consulta son un tipo de

expresión.

Page 17: Access SQL

En la siguiente tabla se muestran algunos criterios de ejemplo y se explica cómo funcionan.

Criterios Descripción

>25 y <50 Este criterio se aplica a un campo de número, como Precios o UnidadesenExistencias.

Incluye sólo aquellos registros donde el campo Precio o UnidadesenExistencias contiene un

valor superior a 25 e inferior a 50.

DifFecha("aaaa",

[FechaNacimiento], Fecha())

> 30

Este criterio se aplica a un campo de Fecha/Hora, como Fecha de nacimiento. En el resultado

de la consulta se incluyen únicamente los registros en los cuales la cantidad de años entre la

fecha de nacimiento de una persona y la fecha actual es mayor que 30.

Es nulo Este criterio se puede aplicar a cualquier tipo de campo para mostrar los registros en los que

el valor de campo es nulo.

Tal como se observa en la tabla anterior, los criterios pueden ser muy distintos unos de otros,

dependiendo del tipo de datos del campo en el que se apliquen y de los requisitos específicos en cada

caso. Algunos criterios son sencillos y usan operadores básicos y constantes. Otros son complejos y

usan funciones y operadores especiales, e incluyen referencias de campo.

IMPORTANTE  Si se usa un campo con una función de agregado, no podrá especificar criterios para

dicho campo en una cláusula WHERE. En su lugar, use una cláusula HAVING para especificar los

criterios de los campos agregados. Para obtener más información, vea el artículo Access SQL:

conceptos básicos, vocabulario y sintaxis y el artículoCláusula HAVING.

Volver al principio

Sintaxis de la cláusula WHEREEn la cláusula WHERE de una instrucción SELECT se usan criterios de consulta.

Una cláusula WHERE tiene la siguiente sintaxis básica:

WHERE campo = criterios

Por ejemplo, suponga que desea el número de teléfono de un cliente, pero sólo recuerda que el

apellido del cliente es García. En lugar de buscar en todos los números de teléfono en su base de

datos, puede usar una cláusula WHERE para limitar los resultados y encontrar más fácilmente el

número de teléfono deseado. Suponiendo que los apellidos están guardados en un campo

denominado Apellidos, su cláusula WHERE se verá del siguiente modo:

WHERE [Apellidos]='García'

Page 18: Access SQL

NOTA  No es necesario basar los criterios de la cláusula WHERE en la equivalencia de valores.

Puede usar otros operadores de comparación, como mayor que (>) o menor que (<). Por

ejemplo, WHERE [Precio]>100.

Volver al principio

Usar la cláusula WHERE para combinar orígenes de datosA veces necesita combinar los orígenes de datos basados en los campos que contienen datos

coincidentes, pero que tienen distintos tipos de datos. Por ejemplo, el campo de una tabla puede

tener el tipo de datos Número y desea comparar dicho campo con un campo de otra tabla que tiene el

tipo de datos Texto.

No puede crear una unión entre campos que tienen distintos tipos de datos. Para combinar los datos

de dos orígenes de datos basados en los valores de los campos que tienen distintos tipos de datos,

debe crear una cláusula WHERE que use un campo como criterio para el otro campo, mediante la

palabra clave LIKE.

Por ejemplo, suponga que desea usar los datos de la tabla1 y de la tabla2, pero sólo cuando los datos

en el campo1 (campo de texto en la tabla1) coinciden con los datos del campo2 (campo numérico en

la tabla2). Su cláusula WHERE será similar a la siguiente:

WHERE campo1 LIKE campo2

Para obtener más información acerca de cómo crear un criterio para una cláusula WHERE, vea el

artículo Ejemplos de criterios de consulta.

Page 19: Access SQL

Ejemplos de criterios de consultaCuando desee limitar los resultados de una consulta según los valores de un campo, use criterio de

búsqueda. Un criterio de búsqueda es una expresión que Access compara con valores de campo de

consulta para determinar si incluir el registro que contiene cada valor. Por ejemplo, = "Chicago" es

una expresión que Access puede comparar con valores de un campo de texto en una consulta. Si el

valor de ese campo en un registro determinado es"Chicago", Access incluye el registro en los

resultados de la consulta.

En este tema se muestran varios ejemplos de criterios de búsqueda. Se supone que está familiarizado

con el diseño de consultas de selección simples.

Para más información sobre cómo crear consultas de selección, vea el artículo Selección de datos

mediante una consulta.

ContenidoIntroducción a los criterios de búsqueda

Criterios para campos de texto, Memo e hipervínculo

Criterios para campos de número, moneda y autonuméricos

Criterios para campos de fecha y hora

Criterios para los demás campos

Introducción a los criterios de búsqueda

Page 20: Access SQL

Un criterio es similar a una fórmula, es una cadena que puede estar compuesta por referencias de

campo, operadores y constantes. Los criterios de búsqueda también se conocen como expresiones en

Microsoft Office Access 2007.

Las tablas siguientes muestran algunos criterios de ejemplo y se explica cómo funcionan.

Criterios Descripción

>25 y <50 Este criterio se aplica a un campo de número, como Precio o ExistenciasDeUnidades. Solo

incluye aquellos registros en los que el campo Precio o ExistenciasDeUnidades contiene 

valor superior a 25 y menor que 50.

DifFecha ( "aaaa",

[FechaNacimiento], Fecha())

> 30

Este criterio se aplica a un campo de fecha y hora, como FechaNacimiento. Solo los registros

en los que el número de años que transcurren entre la FechaNacimiento de una persona

y la fecha de hoy es mayor que 30 se incluyen en el resultado de la consulta.

Is Null Este criterio se puede aplicar a cualquier tipo de campo para mostrar los registros en los

que el valor del campo es NULL.

Como puede ver, los criterios pueden parecer muy diferentes entre sí, según el tipo de datos del

campo al que se aplican y sus requisitos específicos. Algunos criterios son sencillos y usan

operadores y constantes básicos. Otros son complejos y usan funciones, operadores especiales e

incluyen referencias de campo.

En este tema se enumeran varios criterios usados con frecuencia por tipo de datos. Si los ejemplos de

este tema no tratan sus necesidades específicas, puede que tenga que escribir sus propios criterios.

Para ello, primero debe familiarizarse con la lista completa de funciones, operadores, caracteres

especiales y la sintaxis de expresiones que hacen referencia a los campos y literales. Para más

información, vea los artículos que se detallan en la sección Vea también.

Aquí verá dónde y cómo puede agregar los criterios. Para agregar un criterio a una consulta, debe

abrir la consulta en la vista Diseño. Luego, identifique los campos para los que desea especificar

criterios. Si el campo no está aún en la cuadrícula de diseño, agréguelo al arrastrarlo desde la

ventana de diseño de la consulta a la cuadrícula de campo, o bien al hacer doble clic en el campo (al

hacer doble clic en el campo, lo agrega automáticamente a la siguiente columna vacía en la

cuadrícula de campo). Por último, escriba los criterios en la fila Criterios

Los criterios especificados para distintos campos en la fila Criterios se combinan mediante el

operador Y. En otras palabras, los criterios especificados en los campos Ciudad y FechaNacimiento

se interpretan así:

Ciudad = "Chicago" Y FechaNacimiento < AgregFecha (" aaaa ", -40, Fecha())

Page 21: Access SQL

1. Los campos Ciudad y FechaNacimiento incluyen criterios.

2. Solo los registros en los que el valor del campo Ciudad sea Chicago cumplirán este criterio.

3. Solo los registros de aquellos que tengan por lo menos 40 años cumplirán este criterio.

4. Solo los registros que cumplen con ambos criterios se incluirán en el resultado.

¿Qué sucede si desea que solo se cumpla una de estas condiciones? En otras palabras, si tiene

criterios alternativos, ¿cómo los escribe?

Si tiene criterios alternativos, o dos conjuntos de criterios independientes en los que es suficiente que

se cumpla con un conjunto, use ambos Criterios y las filas o en la cuadrícula de diseño.

1. El criterio Ciudad se especifica en la fila Criterios.

Page 22: Access SQL

2. El criterio FechaNacimiento se especifica en la fila o.

Los criterios especificados en las filas Criterios y o se combinan con el operador O, tal como se

muestra a continuación:

Ciudad = "Chicago" O FechaNacimiento < AgregFecha("aaaa", -40, Fecha())

Si necesita especificar más alternativas, use las filas debajo de la fila o.

Antes de continuar con los ejemplos, tenga en cuenta lo siguiente:

Si los criterios son temporales o cambian a menudo, puede filtrar el resultado de la consulta con

frecuencia en lugar de modificar los criterios de búsqueda. Un filtro es un criterio temporal que

cambia el resultado de la consulta sin alterar el diseño de la consulta. Para más información sobre los

filtros, vea el artículo Filtro: limitar el número de registros de una vista.

Si los campos de criterios no cambian pero los valores que quiere usar cambian a menudo, puede crear

una consulta de parámetros. Una consulta de parámetros le pide al usuario los valores de los campos y,

después, usa esos valores para crear los criterios de búsqueda. Para más información sobre consultas

de parámetros, vea el artículo Usar parámetros en consultas e informes.

Criterios para campos de texto, Memo e hipervínculoSi desea ver una demo de criterios que puede usar con campos de texto, vea el artículo Vea esto:

especificar criterios para un campo de texto.

Los ejemplos siguientes son para el campo PaísRegión de una consulta que se basa en una tabla que

almacena información de contactos. El criterio se especifica en la fila Criterios del campo en la

cuadrícula de diseño.

Page 23: Access SQL

Un criterio que especifica para un campo Hipervínculo se aplica, de manera predeterminada, a la

parte de texto para mostrar del valor del campo. Para especificar los criterios para la parte del destino

Localizador uniforme de recursos (URL) del valor, use la expresión ParteDeHipervínculo. La

sintaxis de esta expresión es la siguiente:ParteDeHipervínculo([Tabla1].[Campo1],1) =

"http://www.microsoft.com/", donde Tabla1 es el nombre de la tabla que contiene el campo

Hipervínculo, campo1 es el campo Hipervínculo y http://www.microsoft.com es la dirección URL

que desea que coincida.

Para incluir registros

que...

Use este criterio Resultado de la consulta

Coincidan exactamente

con un valor, como

China

"China" Devuelvan registros en los que el campo PaísRegión tenga el valor

China.

No coincidan con un

valor, como México

No "México" Devuelvan registros en los que el campo PaísRegión tenga un valor

distinto de México.

Empiecen por la cadena

especificada, como U

Como U* Devuelvan registros de todos los países o regiones cuyos nombres

empiecen por "U", como Uruguay, Uganda, etc.

NOTA  Cuando se utiliza en una expresión, el asterisco (*)

representa cualquier cadena de caracteres (también se lo denomina

"carácter comodín"). Para obtener una lista de este tipo de

caracteres, vea el artículo sobre información de referencia sobre los

caracteres comodín en Access.

No empiecen por la

cadena especificada,

como U

No como U* Devuelvan registros de todos los países o regiones cuyos nombres

empiezan por un carácter distinto de "U".

Contengan la cadena

especificada, como

Corea

Como "*Corea*" Devuelvan registros de todos los países o regiones que contengan la

cadena "Corea".

No contengan la cadena

especificada, como

Corea

No como "*Corea*" Devuelvan registros de todos los países o regiones que no contengan

la cadena "Corea".

Acaben con la cadena

especificada, como

"ina"

Como "*ina" Devuelvan registros de todos los países o regiones cuyos nombres

acaben con "ina", como China y Argentina.

No acaben con la

cadena especificada,

como "ina"

No como "*ina" Devuelvan registros de todos los países o regiones cuyos nombres

no acaben con "ina", como China y Argentina.

Contengan valores

nulos (o que falten)

Es Nulo Devuelvan registros en los que no hay ningún valor en el campo.

No contengan valores No es Nulo Devuelvan elementos en los que no falta el valor del campo

Page 24: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

nulos PrecioUnidad.

Contengan cadenas de

longitud cero

"" (un par de comillas) Devuelvan registros en los que el campo tiene un valor en blanco

(pero no nulo). Por ejemplo, los registros de ventas realizadas a otro

departamento podrían contener un valor en blanco en el campo

PaísRegión.

No contengan cadenas

de longitud cero

No "" Devuelvan registros en los que el campo PaísRegión no tiene un

valor en blanco.

Contengan valores

nulos o cadenas de

longitud cero.

"" O Es Nulo Devuelvan registros en los que no hay ningún valor en el campo, o

bien el campo tiene un valor en blanco.

Ni vacío ni en blanco No es Nulo Y Sin "" Devuelvan registros en los que el campo PaísRegión tiene un valor

no en blanco y no nulo.

Vayan a continuación

de un valor, como

México, si se ordenan

alfabéticamente

>= "México" Devuelvan registros de todos los países o regiones a partir de

México y posteriores por orden alfabético.

Estén incluidos en un

intervalo específico,

como de la A hasta la D

Como "[A-D]*" Devuelvan registros de países o regiones cuyos nombres empiezan

por las letras "A" a la "D".

Coincidan con uno de

dos valores, tales como

Estados Unidos o Reino

Unido

"Estados Unidos" O

"Reino Unido"

Devuelvan registros de Estados Unidos y Reino Unido.

Contengan uno de los

valores de una lista

En("Francia", "China",

"Alemania", "Japón")

Devuelvan registros de todos los países y regiones especificados en

la lista.

Contengan ciertos

caracteres en una

posición específica en el

valor del campo

Der([PaísRegión], 1) =

"y"

Devuelvan registros de todos los países y regiones cuya última letra

sea "y".

Satisfagan requisitos de

longitud

Longitud([PaísRegión]) >

10

Devuelvan registros de países y regiones cuyo nombre esté formado

por más de 10 caracteres.

Coincidan con un

modelo específico

Como "Chi??" Devuelvan registros países o regiones, como China y Chile, cuyos

nombres tengan cinco caracteres y los primeros tres sean "Chi".

NOTA  Los caracteres ? y _, cuando se usan en una expresión,

representan un único carácter, y también se denominan caracteres

comodín. El carácter _ no puede usarse en la misma expresión con el

carácter ?, ni se puede utilizar en una expresión con el carácter

Page 25: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

comodín *. Puede que use el carácter comodín _ en una expresión

que también contiene el carácter comodín %.

Criterios para campos de número, moneda y autonuméricosLos ejemplos siguientes son para el campo PrecioUnidad de una consulta que se basa en una tabla

que almacena información de productos. El criterio se especifica en la fila Criterios del campo en la

cuadrícula de diseño de la consulta.

Para incluir

registros que...

Useeste

criterio

Resultado de la consulta

Coincidan

exactamente con un

valor, como 100

100 Devuelvan registros en los que el precio unitario del producto es 100 $.

No coincidan con un

valor, como 1000

No 1000 Devuelvan registros en los que el precio unitario del producto no es 1000 $.

Contengan un valor < 100 Devuelvan registros en los que el precio unitario es menor que 100 $ (<100). La

Page 26: Access SQL

Para incluir

registros que...

Useeste

criterio

Resultado de la consulta

menor que otro valor,

como 100

<= 100 segunda expresión (<=100) muestra los registros en los que el precio por unidad es

menor o igual que 100 $.

Contengan un valor

mayor que otro valor,

como 99,99

>99,99

>=99,99

Devuelvan registros en los que el precio unitario es mayor que 99.99 $ (>99.99). La

segunda expresión muestra los registros en los que el precio por unidad es mayor o

igual que 99.99 $.

Contengan uno de

entre dos valores,

como 20 o 25

20 o 25 Devuelvan registros en los que el precio por unidad es 20 $ o 25 $.

Contengan un valor

que esté incluido en

un intervalo

>49,99 Y

<99,99

O bien,

Entre 50

Y 100

Devuelvan registros en los que el precio unitario está entre 49,99 $ y 99,99 $ (pero sin

incluir estas cantidades).

Contengan un valor

que esté fuera de un

intervalo

<50 O

>100

Devuelvan registros en los que el precio por unidad no está entre 50 $ y 100 $.

Contengan uno entre

varios valores

En(20,

25, 30)

Devuelvan registros en los que el precio por unidad es 20 $, 25 $ o 30 $.

Contengan un valor

que acabe con los

dígitos especificados

Como

"*4,99"

Devuelvan registros en los que el precio por unidad acaba con "4,99", como 4,99 $,

14,99 $, 24,99 $, etc.

NOTA  Los caracteres * y _, cuando se usan en una expresión, representan cualquier

número de caracteres, y también se denominan caracteres comodín. El carácter % 

se puede usar en la misma expresión que el carácter *, ni se puede usar en una

expresión con el carácter comodín ? . Puede que use el carácter comodín % en una

expresión que también contiene el carácter comodín _.

Contengan valores

nulos (o que falten)

Is Null Devuelvan registros en los que no se ha especificado ningún valor en el campo

PrecioUnidad.

Contengan valores no

nulos

No es

Nulo

Devuelvan registros en los que no falta el valor del campo PrecioUnidad.

Criterios para campos de fecha y horaLos ejemplos siguientes son para el campo FechaPedido en una consulta basada en una tabla que

almacena información de Pedidos. El criterio se especifica en la fila Criterios del campo en la

cuadrícula de diseño de la consulta.

Page 27: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

Coincidan exactamente con

un valor, como 02/02/2006

#02/02/2006# Devuelvan registros de transacciones

que tuvieron lugar el 2 de febrero de

2006. Recuerde rodear los valores de

fecha con el carácter # para que

Access pueda distinguir entre valores

de fecha y cadenas de texto.

No coincidan con un valor,

como 02/02/2006

No #02/02/2006# Devuelvan registros de transacciones

que tuvieron lugar cualquier día

menos el 2 de febrero de 2006.

Contengan valores previos

a una fecha determinada,

como 02/02/2006

< #02/02/2006# Devuelvan registros de transacciones

que tuvieron lugar después del 2 de

febrero de 2006.

Si desea ver las transacciones que

tuvieron lugar en esta fecha o antes de

ella, use el operador <= en vez del

operador <.

Contengan valores

posteriores a una fecha

determinada, como

02/02/2006

> #02/02/2006# Devuelvan registros de transacciones

que tuvieron lugar antes del 2 de

febrero de 2006.

Si desea ver las transacciones que

tuvieron lugar en esta fecha o después

de ella, use el operador >= en vez del

Page 28: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

operador >.

Contengan valores

comprendidos en un

intervalo de fechas

>#02/02/2006# y <#04/02/2006# Devuelvan los registros en los que las

transacciones tuvieron lugar entre el 2

de febrero de 2006 y el 4 de febrero

de 2006.

También puede usar el

operador Entre para filtrar según un

intervalo de valores, incluidos los

extremos. Por ejemplo, Entre

#02/02/2006# y #04/02/2006# es lo

mismo que >=#02/02/2006# y

<=#04/02/2006#.

Contengan valores que

están fuera de un intervalo

<#02/02/2006# o >#04/02/2006# Devuelvan los registros en los que las

transacciones tuvieron lugar antes del

2 de febrero de 2006 o después del 4

de febrero de 2006.

Contengan uno de dos

valores, como 02/02/2006 o

03/02/2006

#02/02/2006# o #03/02/2006# Devuelvan registros de transacciones

que tuvieron lugar el 2 de febrero de

2006 o el 3 de febrero de 2006.

Contengan uno entre varios

valores

En (#01/02/2006#, #01/03/2006#, #01/04/2006#) Devuelvan los registros en los que las

transacciones tuvieron lugar el 1 de

febrero de 2006, el 1 de marzo de

2006 o el 1 de abril de 2006.

Contengan una fecha de un

mes específico

(independientemente del

año), como diciembre

DatePart("m", [SalesDate]) = 12 Devuelvan registros en los que las

transacciones tuvieron lugar en

diciembre de cualquier año.

Contengan una fecha de un

trimestre específico

(independientemente del

año), como el primer

trimestre

DatePart("q", [SalesDate]) = 1 Devuelvan registros en los que las

transacciones tuvieron lugar en el

primer trimestre de cualquier año.

Contengan la fecha en

curso

Date() Devuelvan registros de transacciones

que tuvieron lugar el día actual. Si

hoy es 02/02/2006, verá los registros

en los que el campo FechaPedido esté

definido en 2 de febrero de 2006.

Page 29: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

Contengan la fecha de ayer Date()-1 Devuelvan registros de transacciones

que tuvieron lugar el día anterior al

día actual. Si hoy es 02/02/2006, verá

los registros del 1 de febrero de 2006.

Contengan la fecha de

mañana

Date() + 1 Devuelvan registros de transacciones

que tuvieron lugar el día posterior al

día actual. Si hoy es 02/02/2006, verá

los registros del 3 de febrero de 2006.

Contengan fechas

correspondientes a la

semana en curso

DatePart("ww", [SalesDate]) = DatePart("ww",

Date()) and Year( [SalesDate]) = Year(Date())

Devuelvan registros de transacciones

que tuvieron lugar durante la semana

actual. La semana empieza el

domingo y acaba el sábado.

Contengan fechas

correspondientes a la

semana anterior

Year([SalesDate])* 53 + DatePart("ww",

[SalesDate]) = Year(Date())* 53 + DatePart("ww",

Date()) - 1

Devuelvan registros de transacciones

que tuvieron lugar durante la semana

pasada. La semana empieza el

domingo y acaba el sábado.

Contengan fechas

correspondientes a la

semana siguiente

Year([SalesDate])* 53+DatePart("ww", [SalesDate])

= Year(Date())* 53+DatePart("ww", Date()) + 1

Devuelvan registros de transacciones

que tendrán lugar la semana

siguiente. La semana empieza el

domingo y acaba el sábado.

Contengan una fecha que

entre dentro de los últimos

7 días

Between Date() and Date()-6 Devuelvan registros de transacciones

que tuvieron lugar durante los últimos

7 días. Si hoy es el 02/02/2006, verá

los registros correspondientes al

intervalo comprendido entre el 24 de

enero de 2006 y el 2 de febrero de

2006.

Contengan una fecha del

mes en curso

Year([SalesDate]) = Year(Now()) And

Month([SalesDate]) = Month(Now())

Devuelvan registros del mes actual.

Si hoy es 02/02/2006, verá los

registros de febrero de 2006.

Contengan una fecha del

mes anterior

Year([SalesDate])* 12 + DatePart("m", [SalesDate])

= Year(Date())* 12 + DatePart("m", Date()) - 1

Devuelvan registros del mes anterior.

Si hoy es 02/02/2006, verá los

registros de enero de 2006.

Contengan una fecha del

mes siguiente

Year([SalesDate])* 12 + DatePart("m", [SalesDate])

= Year(Date())* 12 + DatePart("m", Date()) + 1

Devuelvan registros del mes

siguiente. Si hoy es 02/02/2006, verá

los registros de marzo de 2006.

Contengan una fecha que

entre dentro de los últimos

30 o 31 días

Between Date( ) And DateAdd("M", -1, Date( )) Registros de ventas de un mes. Si hoy

es 02/02/2006, verá los registros del

período entre el 2 de enero de 2006. y

Page 30: Access SQL

Para incluir registros

que...

Use este criterio Resultado de la consulta

el 2 de febrero de 2006

Contengan una fecha del

trimestre en curso

Year([SalesDate]) = Year(Now()) And DatePart("q",

Date()) = DatePart("q", Now())

Devuelvan registros del trimestre en

curso. Si hoy es 02/02/2006, verá los

registros correspondientes al primer

trimestre de 2006.

Contengan una fecha del

trimestre anterior

Year([SalesDate])*4+DatePart("q",[SalesDate]) =

Year(Date())*4+DatePart("q",Date())- 1

Devuelvan registros del trimestre

anterior. Si hoy es 02/02/2006, verá

los registros correspondientes al

último trimestre de 2005.

Contengan una fecha del

trimestre siguiente

Year([SalesDate])*4+DatePart("q",[SalesDate]) =

Year(Date())*4+DatePart("q",Date())+1

Devuelvan registros del trimestre

siguiente. Si hoy es 02/02/2006, verá

los registros correspondientes al

segundo trimestre de 2006.

Contengan una fecha

correspondiente al año en

curso

Year([SalesDate]) = Year(Date()) Devuelvan registros del año en curso.

Si hoy es 02/02/2006, verá los

registros del año 2006.

Contengan una fecha del

año anterior

Year([SalesDate]) = Year(Date()) - 1 Devuelvan registros de transacciones

que tuvieron lugar durante el año

pasado. Si hoy es 02/02/2006, verá

los registros del año 2005.

Contengan una fecha del

año siguiente

Year([SalesDate]) = Year(Date()) + 1 Devuelvan registros de transacciones

con fecha del año siguiente. Si hoy es

02/02/2006, verá los registros del año

2007.

Contengan una fecha

comprendida entre el 1 de

enero y hoy (registros año

hasta la fecha)

Year([SalesDate]) = Year(Date()) and

Month([SalesDate]) <= Month(Date()) and

Day([SalesDate]) <= Day (Date())

Devuelvan registros de transacciones

fechados entre el 1 de enero del año

en curso y hoy. Si hoy es 02/02/2006,

verá los registros del período entre el

1 de enero de 2006 y el 02/02/2006.

Contengan una fecha ya

pasada

< Date() Devuelvan registros de transacciones

que tengan lugar después de hoy.

Contengan una fecha del

futuro

> Date() Devuelvan registros de transacciones

que tendrán lugar después de hoy.

Filtren valores nulos (o que

falten)

Is Null Devuelvan registros en los que falte

la fecha de la transacción.

Filtren valores no nulos Is Not Null Devuelvan registros en los que se

conozca la fecha de la transacción.

Page 31: Access SQL

Criterios para los demás camposCampos Sí/No    En la fila Criterios, escriba Sí para incluir registros en los que la casilla está

activada. Escriba Nopara incluir registros en los que la casilla no está activa.

Datos adjuntos    En la fila Criterios, escriba Es NULL para incluir registros que no contienen

ningún dato adjunto. Escriba No es NULL para incluir registros que contengan datos adjuntos.

Campos de búsqueda    Hay dos tipos de campos de búsqueda: aquellos que buscan valores en un

origen de datos existente (usando una clave externa), y aquellos que se basan en una lista de valores

especificados cuando se crea el campo de búsqueda.

Los campos de búsqueda que se basan en una lista de valores especificados son del tipo de datos

Texto y los criterios válidos son los mismos que en otros campos de texto.

Los criterios que puede usar en un campo de búsqueda basado en valores de un origen de datos

dependen del tipo de datos de la clave externa, en lugar del tipo de datos de los datos que se buscan.

Por ejemplo, puede tener un campo de búsqueda en el que aparece Nombre del empleado, pero usa

una clave externa que es del tipo de datos Número. Dado que el campo almacena un número en lugar

de texto, use los criterios que se adecúen a números; es decir, >2.

Si no conoce el tipo de datos de la clave externa, puede inspeccionar la tabla de origen en la vista

Diseño para determinar los tipos de datos del campo. Para ello:

1. Busque la tabla de origen en el Panel de navegación.

2. Abra la tabla en la vista Diseño al:

o Hacer clic en la tabla y, después, presionar CTRL+ENTRAR

o Hacer clic con el botón derecho en la tabla y, después, hacer clic en Vista Diseño.

3. El tipo de datos de cada campo se muestra en la columna Tipo de datos de la cuadrícula de diseño

de la tabla.

Campos multivalor    Los datos en un campo multivalor se almacenan como filas en una tabla

oculta que crea Office Access 2007 y rellena para representar el campo. En la vista Diseño de la

consulta, esta se representa en la Lista de campos mediante un campo expandible. Para usar

criterios para un campo multivalor, proporcione criterios para una sola fila de la tabla oculta. Para

ello:

1. Cree una consulta que contenga el campo multivalor y ábrala en la vista Diseño.

2. Expanda el campo multivalor al hacer clic en el signo más (+) situado junto a él. Si el campo ya está

expandido, se trata de un signo menos (-). Justo debajo del nombre del campo, verá un campo que

representa un valor único del campo multivalor. Este campo tendrá el mismo nombre que el campo

multivalor, con la cadena .Value anexa.

Page 32: Access SQL

3. Arrastre el campo multivalor y su campo de valor único para separar las columnas de la cuadrícula

de diseño. Si desea ver solo el campo multivalor completo en los resultados, desactive la

casilla Mostrar para el campo de valor único.

4. Escriba los criterios en la fila Criterios para el campo de valor único, con los criterios que sean

adecuados para el tipo de datos que representan los valores.

5. Cada valor en el campo multivalor será evaluado individualmente mediante los criterios que

especifique. Por ejemplo, puede que tenga un campo multivalor que almacena una lista de números.

Si proporciona los criterios >5 Y <3, todos los registros en los que no haya al menos un valor mayor

que 5 y un valor menor que 3 coincidirán.