access sql

65
Si desea recuperar datos de una base de datos, puede solicitar los datos mediante el Lengu SQL es un lenguaje de computación que se asemeja al inglés y que los programas de bases de consulta que se ejecuta usa SQL en segundo plano. Si comprende el funcionamiento de SQL, podrá crear mejores consultas además de entender có que no devuelve los resultados deseados. !"# o se puede editar SQL para una consulta $eb. En este artículo %Qué es SQL& Cláusulas SQL básicas' S(L(C", )*!+ y -(*( !rdenar los resultados' !* (* /0 /0 "rabajar con datos resumidos' 1*!23 /0 y -#451 Combinar los resultados de la consulta' 25! +ás información acerca de la cláusula S(L(C" +ás información acerca de la cláusula )*!+ +ás información acerca de la cláusula -(*( ¿Qué es SQL? SQL es un lenguaje de computación que sirve para trabajar con conjuntos de datos y las rel de bases de datos relacionales, como +icrosoft !ffice #ccess, usan SQL para trabajar con d lenguajes de computación, SQL no es dif7cil de leer y entender, incluso para un usuario in lenguajes de computación, SQL es un estándar internacional reconocido por organismos de es SQL no es difícil de leer y entender, incluso para un usuario inexperto. SQL se usa para describir conjuntos de datos que pueden ayudarle a responder preguntas. Cu sinta8is correcta. La sinta8is es el conjunto de reglas mediante las cuales se combinan lo correctamente. La sinta8is de SQL se basa en la sinta8is del inglés y usa muc6os de los mi

Upload: correorik

Post on 06-Oct-2015

41 views

Category:

Documents


2 download

DESCRIPTION

Información obtenida de la ayuda oficial de Access 2010.Contiene la descripción inicial del SQL en Access 2010

TRANSCRIPT

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 computacin que se asemeja al ingls 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 adems de entender cmo solucionar una consulta que no devuelve los resultados deseados.Nota No se puede editar SQL para una consulta web.En este artculo

Qu es SQL?Clusulas SQL bsicas: SELECT, FROM y WHEREOrdenar los resultados: ORDER BY BYTrabajar con datos resumidos: GROUP BY y HAVINGCombinar los resultados de la consulta: UNIONMs informacin acerca de la clusula SELECTMs informacin acerca de la clusula FROMMs informacin acerca de la clusula WHERE

Qu es SQL?SQL es un lenguaje de computacin que sirve para trabajar con conjuntos de datos y las relaciones entre ellos. Los programas de bases de datos relacionales, como Microsoft Office Access, usan SQL para trabajar con datos. A diferencia de muchos lenguajes de computacin, SQL no es difcil de leer y entender, incluso para un usuario inexperto. Al igual que muchos lenguajes de computacin, SQL es un estndar internacional reconocido por organismos de estndares, como ISO y ANSI.SQL no es difcil de leer y entender, incluso para un usuario inexperto.

SQL se usa para describir conjuntos de datos que pueden ayudarle a responder preguntas. Cuando usa SQL, debe emplear la sintaxis correcta. La sintaxis es el conjunto de reglas mediante las cuales se combinan los elementos de un lenguaje correctamente. La sintaxis de SQL se basa en la sintaxis del ingls y usa muchos de los mismos elementos que la sintaxis de Visual Basic para Aplicaciones (VBA)(Visual Basic para Aplicaciones (VBA): versin del lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones basadas en Microsoft Windows y que se incluye en varios programas de Microsoft.).Por ejemplo, una simple instruccin SQL que recupera una lista de los apellidos de contactos cuyo nombre es Mara podra ser similar a esto:SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';Nota SQL no se usa solo para manipular datos, sino tambin para crear y modificar el diseo 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 definicin de datos (DDL). En este tema no se describe el DDL. Para obtener ms informacin, vea el tema acerca de cmo crear o modificar tablas o ndices mediante una consulta de definicin de datos.Instrucciones SELECTPara describir un conjunto de datos mediante SQL, escriba una instruccin SELECT. Una instruccin SELECT contiene una descripcin completa del conjunto de datos que desea obtener de una base de datos. Incluye lo siguiente: Qu tablas contienen los datos. Cmo se relacionan los datos de orgenes diferentes. Qu campos o clculos proporcionarn los datos. Criterios que los datos deben cumplir para ser incluidos. Si se deben ordenar los datos y, en caso de ser as, cmo deben ordenarse.Clusulas SQLAl igual que una frase, una instruccin SQL tiene clusulas. Cada clusula realiza una funcin para la instruccin SQL. Algunas clusulas son obligatorias en una instruccin SELECT. En la siguiente tabla se enumeran las clusulas SQL ms comunes.Clusula SQLFuncinObligatoria

SELECTMuestra una lista de los campos que contienen datos de inters.S

FROMMuestra las tablas que contienen los campos de la clusula SELECT.S

WHEREEspecifica los criterios de campo que cada registro debe cumplir para poder ser incluido en los resultados.No

ORDER BYEspecifica la forma de ordenar los resultados.No

GROUP BYEn una instruccin SQL que contiene funciones de agregado, muestra los campos que no se resumen en la clusula SELECT.Solo si estn estos campos

HAVINGEn una instruccin SQL que contiene funciones de agregado, especifica las condiciones que se aplican a los campos que se resumen en la instruccin SELECT.No

Trminos de SQLCada clusula SQL consta de trminos,comparables a diferentes partes de la oracin. En la siguiente tabla se enumeran los tipos de trminos de SQL.Trmino de SQL Parte de la oracin comparableDefinicinEjemplo

identificadorsustantivoNombre que se usa para identificar un objeto de la base de datos, como el nombre de un campo.Clientes.[Nmero de telfono]

operadorverbo o adverbioPalabra clave que representa o modifica una accin.AS

constantesustantivoValor que no cambia, como un nmero o un valor nulo (NULL).42

expresinadjetivoCombinacin de identificadores, operadores, constantes y funciones que se evala como un valor nico.> = Productos.[Precio por unidad]

Volver al principioClusulas SQL bsicas: SELECT, FROM y WHEREUna instruccin SQL tiene el formato general:SELECT field_1FROM table_1WHERE criterion_1;Notas Access pasa por alto los saltos de lnea en una instruccin SQL. Sin embargo, conviene usar una lnea para cada clusula para que las instrucciones SQL sean ms fciles 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 clusula o solo en una lnea al final de la instruccin SQL.Un ejemplo en AccessA continuacin se muestra el aspecto que podra tener en Access una instruccin SQL para una consulta de seleccin simple:

Clusula SELECTClusula FROMClusula WHEREEn este ejemplo de instruccin SQL, se indica "Seleccionar los datos almacenados en los campos Direccin de correo electrnico y Empresa de la tabla llamada Contactos, especficamente aquellos registros en los cuales el valor del campo Ciudad sea Seattle". A continuacin se incluye un ejemplo y se describe cada clusula para mostrar cmo funciona la sintaxis de SQL.Clusula SELECTSELECT [E-mail Address], Companysta es la clusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores ([Direccin de correo electrnico] y Empresa). Si un identificador contiene espacios o caracteres especiales (como "Direccin de correo electrnico"), se debe escribir entre corchetes.Una clusula 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 clusula SELECT siempre aparece antes que la clusula FROM en una instruccin SELECT.Clusula FROMFROM Contactssta es la clusula FROM. Se compone de un operador (FROM) seguido de un identificador (Contactos). Una clusula FROM no enumera los campos que se van a seleccionar.Clusula WHEREWHERE City="Seattle"sta es la clusula WHERE. Se compone de un operador (WHERE) seguido de un identificador (Ciudad="Seattle"). Nota A diferencia de las clusulas SELECT y FROM, la clusula WHERE no es un elemento obligatorio en una instruccin SELECT.Puede realizar muchas de las acciones que SQL permite mediante las clusulas SELECT, FROM y WHERE. En las secciones incluidas al final de este artculo encontrar ms informacin acerca de cmo usar estas clusulas:Ms informacin acerca de la clusula SELECTMs informacin acerca de la clusula FROMMs informacin acerca de la clusula WHERE

Volver al principioOrdenar los resultados: ORDER BYAl igual que Microsoft Office Excel, Access permite ordenar los resultados de la consulta en una hoja de datos. Adems, puede especificar en la consulta cmo desea ordenar los resultados al ejecutar la consulta mediante una clusula ORDER BY. Si usa una clusula ORDER BY, sta ser la ltima clusula en la instruccin SQL.Una clusula 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 ordenacin.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 adems por el valor indicado en el campo Direccin de correo electrnico en orden ascendente. La clusula ORDER BY podra 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 ms informacin acerca de la clusula ORDER BY, vea el tema sobre la clusula ORDER BY.Volver al principioTrabajar con datos resumidos: GROUP BY y HAVINGEn ocasiones, es posible que desee trabajar con datos resumidos, como las ventas totales de un mes o los artculos ms caros del inventario. Para ello, debe aplicar una funcin de agregado(funcin de agregado: funcin, como Suma, Cuenta, Promedio o Var, que se utiliza para calcular totales.) a un campo en la clusula SELECT. Por ejemplo, si desea que la consulta muestre la cantidad de direcciones de correo electrnico para cada una de las empresas, la clusula SELECT debe ser similar a la siguiente:SELECT COUNT([E-mail Address]), CompanyLas funciones de agregado que se pueden usar dependen del tipo de datos del campo o la expresin que desea emplear. Para obtener ms informacin acerca de las funciones de agregado disponibles, vea el tema sobre las funciones de agregado de SQL.Especificar campos que no se usan en una funcin de agregado: clusula GROUP BYAl usar las funciones de agregado, normalmente debe crear una clusula GROUP BY. Una clusula GROUP BY muestra una lista de todos los campos a los que no se aplica una funcin de agregado. Si aplica las funciones de agregado a todos los campos de una consulta, no es necesario crear la clusula GROUP BY.Una clusula GROUP BY se incluye inmediatamente despus de la clusula WHERE o la clusula FROM si no hay una clusula WHERE. La clusula GROUP BY muestra una lista de los campos que aparecen en la clusula SELECT.Por ejemplo, siguiendo con el ejemplo anterior, si la clusula SELECT aplica una funcin de agregado a [Direccin de correo electrnico] pero no a Empresa, la clusula GROUP BY sera similar a la siguiente:GROUP BY CompanyPara obtener ms informacin acerca de la clusula GROUP BY, vea el tema sobre la clusula GROUP BY.Limitar los valores de agregado mediante los criterios de agrupacin: clusula HAVINGSi desea usar criterios para limitar sus resultados, pero el campo al que desea aplicar el criterio se usa en una funcin de agregado, no puede usar una clusula WHERE. En su lugar, debe usar una clusula HAVING. La clusula HAVING funciona como la clusula WHERE, pero se usa para los datos agregados.Por ejemplo, suponga que usa la funcin COUNT (que devuelve un nmero de filas) con el primer campo de la clusula SELECT:SELECT COUNT([E-mail Address]), CompanySi desea que la consulta limite los resultados segn el valor de la funcin COUNT, no puede usar un criterio para dicho campo en la clusula WHERE. Por el contrario, debe incluir el criterio en una clusula HAVING. Por ejemplo, si solo desea que la consulta indique las filas en caso de que exista ms de una direccin de correo electrnico asociada con la empresa, la clusula HAVING debera ser similar a la siguiente:HAVING COUNT([E-mail Address])>1Nota Una consulta puede incluir una clusula WHERE y una clusula HAVING:los criterios para los campos que no se usan en una funcin de agregado se corresponden con la clusula WHERE y los criterios de los campos que se usan en las funciones de agregado se corresponden con la clusula HAVING.Para obtener ms informacin acerca de la clusula HAVING, vea el tema sobre la clusula HAVING.Volver al principioCombinar los resultados de la consulta: UNIONSi desea revisar todos los datos obtenidos en conjunto de varias consultas de seleccin 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 nmero 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 nmero de campos que cada una de las instrucciones de seleccin. Nota A efectos de una consulta de unin, los tipos de datos Texto y Nmero son compatibles.Si usa el operador UNION, tambin puede usar la palabra clave ALL para especificar si los resultados de la consulta deben incluir las filas duplicadas, si existe alguna.La sintaxis bsica de SQL para una consulta de unin que combina dos instrucciones SELECT es la siguiente:SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM 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 garanta del servicio o de garanta del producto, y si el producto o servicio se ofrece de forma exclusiva. Aunque en la tabla Productos se almacena informacin de garanta del producto y en la tabla Servicios se almacena informacin de garanta del servicio, la informacin bsica es la misma (si un producto o servicio determinado incluye una garanta de calidad). Puede usar una consulta de unin, como la que se muestra a continuacin, para combinar los cuatro campos de las dos tablas:SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;Para obtener ms informacin acerca de cmo combinar instrucciones SELECT mediante el operador UNION, vea el tema sobre cmo combinar los resultados de varias consultas de seleccin mediante una consulta de unin.Volver al principioMs informacin acerca de la clusula SELECTEn una instruccin SELECT, la clusula SELECT incluye los campos que contienen los datos que desea usar.Usar corchetes para incluir los identificadoresPuede escribir el nombre entre corchetes para incluir el nombre de un campo en la clusula SELECT. Si el nombre no contiene espacios ni caracteres especiales (como signos de puntuacin), los corchetes son opcionales. Si el nombre contiene espacios o caracteres especiales, debe usar los corchetes.SugerenciaUn nombre que contiene espacios resulta ms fcil de leer y le permite ahorrar tiempo cuando disea formularios e informes, pero es posible que luego deba escribir ms al especificar instrucciones SQL. Debe tener en cuenta este dato cuando asigne un nombre a los objetos de la base de datos.Si la instruccin SQL tiene dos o ms campos con el mismo nombre, debe agregar el nombre del origen de datos de cada campo al nombre del campo en la clusula SELECT. Debe usar el mismo nombre para los orgenes de datos que ha usado en la clusula FROM.Seleccionar todos los camposSi desea incluir todos los campos de un origen de datos, puede enumerar todos los campos individualmente en la clusula SELECT o bien puede usar el carcter comodn asterisco (*). Si 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 asegurarse de que la consulta se actualizar en caso de que se agreguen nuevos campos al origen de datos.Puede usar el asterisco con uno o ms orgenes de datos en una instruccin SQL. Si usa el asterisco y hay varios orgenes de datos, debe incluir el nombre del origen de datos junto con el asterisco para 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 solo la direccin de correo electrnico de la tabla de Contactos. La clusula SELECT podra ser similar a la siguiente:SELECT Orders.*, Contacts.[E-mail Address]Nota Realice un seguimiento cada vez que use el asterisco. Si ms adelante se agregan al origen de datos nuevos campos que no estaban previstos, los resultados de la consulta podran no ser los deseados.Seleccionar valores distintosSi sabe que la instruccin seleccionar datos redundantes y prefiere ver solo los valores distintos, puede usar la palabra clave DISTINCT en la clusula SELECT. Por ejemplo, suponga que cada uno de los clientes representa varios intereses diferentes y algunos usan el mismo nmero de telfono. Si desea asegurarse de que solo se vea cada uno de los nmeros de telfono una vez, la clusula SELECT debe ser similar a la siguiente:SELECT DISTINCT [txtCustomerPhone]Usar nombres sustitutos para los campos o expresiones: palabra clave ASPuede cambiar la etiqueta que se muestra para cualquier campo en la vista de hoja de datos mediante la palabra clave AS y un alias de campo en la clusula SELECT. Un alias de campo es un nombre que se asigna a un campo en una consulta para que las consultas sean ms fciles de leer. Por ejemplo, si desea seleccionar datos de un campo llamado txtTelClien y el campo contiene los nmeros de telfono de los clientes, puede mejorar la legibilidad de los resultados mediante el uso de un alias de campo en la instruccin SELECT de la siguiente manera:SELECT [txtCustPhone] AS [Customer Phone]Nota Debe usar un alias de campo si se usa una expresin en una clusula SELECT.Seleccionar mediante una expresinEn ocasiones, es posible que necesite realizar clculos a partir de los datos o recuperar solo una parte de los datos de un campo. Por ejemplo, suponga que desea obtener el ao de nacimiento de los clientes a partir de los datos del campo Fecha de nacimiento de la base de datos. La clusula SELECT puede ser similar a la siguiente:SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]Esta expresin consta de la funcin DatePart y dos argumentos ("yyyy" (constante) y [BirthDate] (identificador)). Puede usar cualquier expresin vlida como campo siempre que la expresin genere un valor nico al especificar un valor de entrada nico.Volver al principioMs informacin acerca de la clusula FROMEn una instruccin SELECT, la clusula FROM especifica las tablas o consultas que contienen los datos que usar la clusula SELECT.Supongamos que desea saber el nmero de telfono de un cliente especfico. Si la tabla que contiene el campo que almacena estos datos se llama tblCliente, la clusula FROM sera similar a:FROM tblCustomerUsar corchetes para incluir los identificadoresPuede escribir el nombre entre corchetes. Si el nombre no contiene espacios ni caracteres especiales (como signos de puntuacin), los corchetes son opcionales. Si el nombre contiene espacios o caracteres especiales, debe usar los corchetes.SugerenciaUn nombre que contiene espacios resulta ms fcil de leer y le permite ahorrar tiempo cuando disea formularios e informes, pero es posible que luego deba escribir ms al especificar instrucciones SQL. Debe tener en cuenta este dato cuando asigne un nombre a los objetos de la base de datos.Usar nombres sustitutos para orgenes de datosPuede usar un nombre diferente para hacer referencia a un origen de datos en una instruccin SELECT mediante un alias de tabla en la clusula FROM. Un alias de tabla es el nombre que se asigna a un origen de datos en una consulta si se usa una expresin como origen de datos o para facilitar la escritura y lectura de la instruccin SQL. Esto puede ser especialmente til si el nombre del origen de datos es largo o difcil de escribir, sobre todo si hay varios campos que tienen el mismo nombre en diferentes tablas.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 clusula SELECT puede ser similar a la siguiente:SELECT [tblCustomer].[ID], [tblOrder].[ID]Al usar alias de tabla en la clusula FROM, puede facilitar la escritura de la consulta. As, la clusula FROM podra ser similar a:FROM [tblCustomer] AS [C], [tblOrder] AS [O]A continuacin, puede usar estos alias de tabla en la clusula SELECT del modo siguiente:SELECT [C].[ID], [O].[ID]Nota Si se usa un alias de tabla, puede hacer referencia al origen de datos en la instruccin SQL mediante el alias o mediante el nombre completo del origen de datos.Combinar datos relacionadosCuando necesite combinar pares de registros de dos orgenes de datos en un registro nico en los resultados de una consulta, puede realizar una combinacin. Una combinacin es una operacin de SQL que especifica cmo se relacionan dos orgenes de datos y si se deben incluir los datos de un origen en caso de no haber ningn dato correspondiente del otro origen.Para combinar la informacin de dos orgenes de datos, debe realizar una operacin de combinacin en el campo que tienen en comn. Si los valores almacenados en este campo coinciden, los datos de los registros se combinan en los resultados.Adems de la combinacin de datos, tambin se puede usar una combinacin para especificar si se incluirn registros de cualquier tabla en caso de no haber ningn 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 ms 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 ningn registro correspondiente en la otra tabla, la clusula FROM puede ser similar a la siguiente (se ha agregado un salto de lnea para mejorar la legibilidad):FROM [tblCustomer] INNER JOIN [tblOrder] ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]En Microsoft Office Access, las combinaciones se producen en la clusula FROM de una instruccin SELECT. Hay dos tipos de combinaciones: combinaciones internas y combinaciones externas. En las siguientes secciones se explican estos dos tipos de combinaciones.Combinaciones internasLas combinaciones internas son el tipo de combinacin ms comn. Cuando se ejecuta una consulta con una combinacin interna, los nicos registros que se incluyen en los resultados de la consulta son los registros en los que existe un valor comn en las dos tablas combinadas.Una combinacin interna tiene la siguiente sintaxis (se ha agregado un salto de lnea para mejorar la legibilidad):FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field2En la siguiente tabla se describen las diferentes partes de una operacin INNER JOIN.ParteDescripcin

tabla1, tabla2Nombres de las tablas cuyos registros se combinan.

campo1, campo2Nombres de los campos que se combinan. Si no son numricos, los campos deben ser del mismo tipo de datos(tipo de datos: caracterstica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de datos, pero pueden tener nombres distintos.

opcompCualquier operador de comparacin relacional: "=", "", "=" o "".

Combinaciones externasLas combinaciones externas son similares a las combinaciones internas porque indican a una consulta cmo combinar informacin a partir de dos orgenes. Son diferentes ya que tambin especifican si se incluirn datos donde no hay ningn valor comn. Las combinaciones externas son direccionales: se puede especificar si incluir todos los registros del primer origen de datos especificado en la combinacin (denominada combinacin izquierda o left join) o incluir todos los registros del segundo origen de datos en la combinacin (denominada combinacin derecha o right join).Una combinacin externa tiene la siguiente sintaxis: FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2ON tabla1.campo1opcomp tabla2.campo2En la siguiente tabla se describen las diferentes partes de las operaciones LEFT JOIN y RIGHT JOIN.ParteDescripcin

tabla1, tabla2Nombres de las tablas cuyos registros se combinan.

campo1, campo2Nombres de los campos que se combinan. Estos campos deben ser del mismo tipo de datos(tipo de datos: caracterstica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de datos, pero pueden tener nombres distintos.

opcompCualquier operador de comparacin relacional: "=", "", "=" o "".

Para obtener ms informacin acerca de las combinaciones, vea el tema sobre cmo combinar tablas y consultas.Volver al principioMs informacin acerca de la clusula WHERESi desea usar datos para limitar el nmero de registros devueltos en una consulta, puede usar criterios(criterios: condiciones que se especifican para limitar los registros que se incluyen en el conjunto de resultados de una consulta o un filtro.) de consulta en la clusula WHERE de una instruccin SELECT. Un criterio de consulta es similar a una frmula: consiste en una cadena que puede incluir referencias de campos, operadores(operador: signo o smbolo que especifica el tipo de clculo que se debe llevar a cabo en una expresin. Hay operadores matemticos, comparativos, lgicos y referenciales.) y constantes(constante: valor que no ha sido calculado y que, por tanto, no vara. Por ejemplo, el nmero 210 y el texto "Ingresos trimestrales" son constantes. Las expresiones, o los valores resultantes de ellas, no son constantes.). Los criterios de consulta son un tipo de expresin(expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar datos.).En la siguiente tabla se muestran algunos criterios de ejemplo y se explica cmo funcionan. CriteriosDescripcin

>25 y 30Este 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 aos entre la fecha de nacimiento de una persona y la fecha actual es superior a 30.

Es nuloEste 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 entre s segn el tipo de datos del campo al que se apliquen y los requisitos especficos en cada caso. Algunos criterios son sencillos y usan operadores bsicos y constantes. Otros son complejos y usan funciones y operadores especiales, e incluyen referencias de campo.ImportanteSi se usa un campo con una funcin de agregado, no podr especificar criterios para dicho campo en una clusula WHERE. En su lugar, debe usar una clusula HAVING para especificar criterios para los campos agregados. Para obtener ms informacin, vea la seccin Trabajar con datos resumidos: GROUP BY y HAVING. Sintaxis de la clusula WHEREUna clusula WHERE tiene la siguiente sintaxis bsica:WHERE field = criterionPor ejemplo, suponga que desea saber el nmero de telfono de un cliente, pero solo recuerda que el apellido del cliente es Bagel. En lugar de buscar en todos los nmeros de telfono de la base de datos, puede usar una clusula WHERE para limitar los resultados y encontrar ms fcilmente el nmero de telfono deseado. Si los apellidos se almacenan en un campo denominado Apellidos, la clusula WHERE ser similar a la siguiente::WHERE [LastName]='Bagel'Nota No es necesario basar los criterios de la clusula WHERE en la equivalencia de valores. Puede usar otros operadores de comparacin, como mayor que (>) o menor que (100.Usar la clusula WHERE para combinar orgenes de datosEn ocasiones, es posible que necesite combinar orgenes 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 Nmero y es posible que desee comparar dicho campo con un campo de otra tabla que tiene el tipo de datos Texto.No puede crear una unin entre campos que tienen distintos tipos de datos. Para combinar los datos de dos orgenes de datos basados en los valores de los campos que tienen distintos tipos de datos, debe crear una clusula 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 la tabla2, pero solo si los datos del campo1 (campo de texto de la tabla1) coinciden con los datos del campo2 (campo numrico de la tabla2). La clusula WHERE ser similar a la siguiente:WHERE field1 LIKE field2Para obtener ms informacin acerca de cmo crear un criterio para usar una clusula WHERE, vea el tema de ejemplos de criterios de consulta.Volver al principio

Access > ConsultasCombinar los resultados de varias consultas de seleccin mediante una consulta de uninMostrar todoOcultar todoCuando desea revisar todos los datos devueltos por varias consultas de seleccin similares, como un conjunto combinado, puede utilizar una consulta de unin.En este artculo se muestra cmo crear una consulta de unin a partir de dos o ms consultas de seleccin existentes y se explica asimismo cmo escribir una consulta de unin mediante el lenguaje de consulta estructurado (SQL).Para completar los ejemplos de este artculo, debe disponer de conocimiento bsicos sobre cmo crear y ejecutar las consultas de seleccin. Para obtener ms informacin sobre cmo crear consultas de seleccin, vea la seccin Vea tambin.En este artculo.

Informacin generalCrear una consulta de uninSugerencias para el uso de consultas de unin

Informacin generalQu hace una consulta de unin?Una consulta de unin combina los conjuntos de resultados de varias consultas de seleccin similares.Por ejemplo, supongamos que tiene una tabla en la que se almacena informacin acerca de los clientes, otra tabla en la que se almacena informacin acerca de los proveedores y no existe ninguna relacin entre las dos tablas. Supongamos que ambas tablas tienen campos en los que se almacena informacin de contacto y que desea ver toda la informacin de contacto de ambas tablas a la vez.Podra crear una consulta de seleccin(consulta de seleccin: consulta que formula una pregunta sobre los datos almacenados en las tablas y devuelve un conjunto de resultados en forma de una hoja de datos sin modificar los datos de las tablas.) para cada tabla con el fin de recuperar slo los campos con informacin de contacto, pero la informacin devuelta seguira estando en dos ubicaciones independientes. Para combinar los resultados de dos o ms consultas de seleccin en un solo conjunto de resultados, puede utilizar una consulta de unin.Requisitos de las consultas de uninLas consultas de seleccin que se combinan en una consulta de unin deben tener el mismo nmero de campos de resultados, en el mismo orden y con tipos de datos idnticos o compatibles. Cuando se ejecuta una consulta de unin, los datos de cada conjunto de campos correspondientes se combinan en un solo campo de resultados, de modo que los resultados de la consulta tienen el mismo nmero de campos que cada una de las instrucciones SELECT. Nota Para las consultas de unin, los tipos de datos Texto y Nmero son compatibles.Una consulta de unin es especfica de SQL. Las consultas especficas de SQL no se pueden mostrar en la vista Diseo y, por lo tanto, deben escribirse directamente en SQL. En Microsoft Office Access 2007, se usa la ficha de objeto Vista SQL para escribir consultas especficas de SQL, incluidas las consultas de unin.SugerenciaTodas las consultas pueden expresarse mediante instrucciones SQL. La mayora de las consultas tambin se pueden expresar en la cuadrcula de diseo(cuadrcula de diseo: cuadrcula utilizada para disear una consulta o un filtro en la vista Diseo de consulta o en la ventana Filtro u orden avanzado. Para las consultas, esta cuadrcula se conoca antes como la cuadrcula QBE.), que, en caso de estar disponible, es un entorno ms fcil para la creacin de consultas. Cuando se crea una consulta mediante la cuadrcula de diseo, se puede cambiar en todo momento a la vista SQL para ver la instruccin SQL que se procesa cuando se ejecuta la consulta. Se recomienda que vea las consultas en la vista SQL para familiarizarse con SQL y ampliar sus conocimientos sobre el funcionamiento de las consultas. En algunos casos, la vista SQL tambin puede resultar til para solucionar problemas relacionados con una consulta que no devuelve los resultados previstos.Sintaxis SQL de una consulta de uninEn una consulta de unin, cada consulta de seleccin (tambin denominada instruccin SELECT) tiene una clusula SELECT y una clusula FROM, y tambin puede tener una clusula WHERE. Una clusula SELECT muestra los campos que contienen los datos que se desean recuperar; una clusula FROM muestra las tablas que contienen esos campos; y una clusula WHERE muestra los criterios de esos campos. Las instrucciones SELECT se combinan en una consulta de unin mediante la palabra clave UNION.sta es la sintaxis SQL bsica de una consulta de unin que combina dos consultas de seleccin:SELECT field_1[, field_2,]FROM table_1[, table_2,]UNION [ALL]SELECT field_a[, field_b,...]FROM table_a[, table_b,];Por ejemplo, supongamos que tiene una tabla denominada Products (Productos) y otra tabla denominada Services (Servicios). Ambas tablas tienen campos que contienen el nombre del producto o servicio, el precio, la garanta y si el producto o servicio se ofrece de forma exclusiva. Si bien en la tabla Products se almacena informacin de garanta (warranty) y en la tabla Services se almacena informacin de garanta (guarantee), la informacin bsica es la misma (si un determinado producto o servicio viene acompaado de una garanta de calidad). Puede utilizar una consulta de unin, como la que figura a continuacin, para combinar los cuatro campos de las dos tablas:SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;Examinemos lnea por lnea el anterior ejemplo de sintaxis. SELECT name, price, warranty_available, exclusive_offerSe trata de una clusula SELECT, que se utiliza para iniciar una consulta de seleccin. La palabra SELECT va seguida de una lista de identificadores que indican los campos de los que se desea recuperar datos. Una clusula SELECT siempre debe enumerar al menos un campo. Esta clusula SELECT enumera los identificadores de campo name, price, warranty_available y exclusive_offer. FROM ProductsSe trata de una clusula FROM. Una clusula FROM va detrs de una clusula SELECT y juntas forman una instruccin SELECT bsica. La palabra FROM va seguida de una lista de identificadores que indican las tablas que contienen los campos que se enumeran en la clusula SELECT. Una clusula FROM siempre debe enumerar al menos una tabla. Esta clusula FROM enumera el identificador de tabla Products. UNION ALLEs la palabra clave UNION y la palabra clave opcional ALL. UNION indica que los resultados de la instruccin SELECT que precede a UNION se combinarn con los resultados de la instruccin SELECT que figura despus de UNION. Cuando se utiliza la palabra clave ALL, no se quitan las filas duplicadas del conjunto combinado generado por la unin. Esto puede mejorar considerablemente el rendimiento de la consulta porque Access no tiene que comprobar si hay filas duplicadas en los resultados. La palabra clave ALL debe utilizarse si se cumple alguna de las condiciones siguientes: Tiene la certeza de que las consultas de seleccin no generarn filas duplicadas. No importa si los resultados tienen filas duplicadas. Desea ver las filas duplicadas.En este ejemplo, se utiliza la palabra clave ALL porque no se espera que se devuelvan filas duplicadas y no hay ninguna razn para no mostrar las filas duplicadas si las hay. SELECT name, price, guarantee_available, exclusive_offerEs la segunda clusula SELECT, que inicia la segunda instruccin SELECT en la consulta de unin. Cuando se escribe una consulta de unin, los campos de las instrucciones SELECT deben corresponderse, lo cual significa que las instrucciones SELECT deben tener el mismo nmero de campos, los campos que comparten datos comunes deben aparecer en el mismo orden en la clusula y deben tener tipos de datos idnticos o compatibles, tal y como se muestra en el ejemplo. Los campos deben corresponderse de modo que se pueden combinar en los resultados de la consulta. Nota Los nombres de los campos en los resultados de una consulta de unin proceden de la primera clusula SELECT. Por lo tanto, en el ejemplo, los datos del campo "warranty_available" y del campo "guarantee_available" se denominan "warranty_available" en los resultados de la consulta. FROM ServicesEs la segunda clusula FROM, que completa la segunda instruccin SELECT en la consulta de unin. A diferencia de los campos en las clusulas SELECT, no hay restricciones en las tablas de las clusulas FROM de una consulta de unin. Se puede crear una consulta de unin que utilice las mismas tablas en cada clusula FROM. Puede haber un nmero distinto de tablas en las clusulas FROM. En el ejemplo, cada clusula FROM tiene slo una tabla.Volver al principioCrear una consulta de uninExisten dos mtodos bsicos para crear una consulta de unin: Crear las consultas de seleccin de los componentes en la vista Diseo(vista Diseo: vista que muestra el diseo de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseo, puede crear objetos de base de datos nuevos y modificar el diseo de otros existentes.) de la consulta y, a continuacin, combinar estas consultas en una consulta de unin. Crear toda la consulta de unin directamente en la vista SQL(vista SQL: ficha de objeto que muestra la instruccin SQL para la consulta activa o que se usa para crear una consulta especfica de SQL (unin, paso a travs o definicin de datos). Cuando se crea una consulta en la vista Diseo, se construye el SQL equivalente en la vista SQL.).En la mayora de los casos, debe crear primero las consultas de seleccin y, a continuacin, combinarlas en una consulta de unin. En Office Access 2007, la vista Diseo proporciona una interfaz de usuario grfica fcil de usar para crear consultas de seleccin y las instrucciones SQL de estas consultas se pueden copiar y pegar en una consulta de unin.Sin embargo, si no le supone ningn esfuerzo escribir instrucciones SQL o si desea obtener ms experiencia escribiendo instrucciones SQL, puede que prefiera crear la consulta de unin directamente en la vista SQL.Qu desea hacer?

Crear primero las consultas de seleccin en la vista Diseo y, a continuacin, combinarlasCrear la consulta de unin directamente en la vista SQL

Crear primero las consultas de seleccin en la vista Diseo y, a continuacin, combinarlasEn este mtodo, se crea cada consulta de seleccin utilizando la vista Diseo y, a continuacin, se combinan las consultas de seleccin utilizando la vista SQL.Crear cada consulta de seleccin en la vista Diseo1. En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta. 2. En el cuadro de dilogo Mostrar tabla, haga doble clic en la tabla con los campos que desee incluir. La tabla se agrega a la ventana de diseo de la consulta.Nota Aunque puede incluir varias tablas o consultas en una consulta de seleccin, en este procedimiento se supone que cada una de las consultas de seleccin incluye datos de una sola tabla.3. Cierre el cuadro de dilogo Mostrar tabla. 4. En la ventana de diseo de la consulta, haga doble clic en cada uno de los campos que desee incluir. Al seleccionar los campos, asegrese de agregar el mismo nmero de campos, en el mismo orden, que a las otras consultas de seleccin. Fjese en los tipos de datos de los campos y asegrese de que son compatibles con los tipos de datos de los campos en la misma posicin de las otras consultas que est combinando.Por ejemplo, si la primera consulta de seleccin tiene cinco campos y el primer campo contiene datos de fecha y hora, asegrese de que las dems consultas de seleccin que est combinando tambin tienen cinco campos y que el primero contiene datos de fecha y hora, y as sucesivamente.5. De manera opcional, agregue criterios a los campos escribiendo las expresiones(expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar datos.) apropiadas en la fila Criterios de la cuadrcula de campo. 6. Despus de agregar los campos y criterios, debe ejecutar la consulta de seleccin y revisar sus resultados. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.7. Cambie la consulta a la vista Diseo. 8. Guarde la consulta de seleccin y djela abierta. 9. Repita este procedimiento para cada una de las consultas de seleccin que desee combinar.Combinar las consultas de seleccin en la vista SQL1. En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta. Una nueva consulta se abre en la vista Diseo.2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Consulta, haga clic en Unin. La ventana de diseo de la consulta est oculta y se muestra la ficha de objeto de la vista SQL, que est vaca.4. Haga clic en la ficha de la primera consulta de seleccin que desee combinar en la consulta de unin. 5. En la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuacin, haga clic en Vista SQL. Se muestra la instruccin SQL de la consulta de seleccin.6. Copie la instruccin SQL de la consulta de seleccin. 7. Haga clic en la ficha de la consulta de unin que empez a crear en el paso 1 de este procedimiento. 8. Pegue la instruccin SQL de la consulta de seleccin en la ficha de objeto de la vista SQL de la consulta de unin. 9. Elimine el signo de punto y coma (;) que se encuentra al final de la instruccin SQL de la consulta de seleccin. 10. Presione ENTRAR para bajar el cursor una lnea y, a continuacin, escriba UNION en la nueva lnea. De manera opcional, escriba un espacio seguido de la palabra clave All y, a continuacin, presione de nuevo ENTRAR.11. Haga clic en la ficha de la siguiente consulta de seleccin que desee combinar en la consulta de unin. 12. Repita los pasos de 5 a 11 de este procedimiento hasta que haya copiado y pegado todas las instrucciones SQL de las consultas de seleccin en la ventana de la vista SQL de la consulta de unin. No elimine el signo de punto y coma ni escriba nada despus de la instruccin SQL de la ltima consulta de seleccin. 13. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar. Los resultados de la consulta de unin aparecen en la vista Hoja de datos(vista Hoja de datos: vista que muestra datos de una tabla, un formulario, una consulta, una vista o un procedimiento almacenado con formato de filas y columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.).Crear la consulta de unin directamente en la vista SQLEn el siguiente procedimiento se indican los pasos que debe dar para crear una consulta de unin bsica en la vista SQL.1. En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta. Una nueva consulta se abre en la vista Diseo.2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Consulta, haga clic en Unin. La ventana de diseo de la consulta est oculta y se muestra la ficha de objeto de la vista SQL, que est vaca.4. En la ficha de objeto Vista SQL, escriba la palabra SELECT, seguida de una lista de los campos de la primera tabla o del primer conjunto de tablas que desee incluir en la consulta. Utilice comas para separar los nombres de los campos. Cuando termine de escribir esa lista, presione ENTRAR. 5. Escriba FROM, seguido de los nombres de las tablas que contienen los campos enumerados en la anterior clusula SELECT y, a continuacin, presione ENTRAR. 6. Para especificar un criterio para un campo de una de estas tablas, escriba WHERE, seguido del nombre del campo, un operador de comparacin(normalmente, el signo de igualdad =) y el criterio. Puede agregar ms criterios al final de la clusula WHERE mediante las palabras clave AND y OR. Cuando termine de especificar los criterios, presione ENTRAR. 7. Escriba UNION. Si no desea que la consulta quite las filas duplicadas de los resultados, escriba un espacio, seguido de la palabra clave ALL y, a continuacin, presione ENTRAR. 8. Escriba SELECT, seguido de una lista de los campos de la siguiente tabla o del siguiente conjunto de tablas que desee incluir en la consulta. Estos campos deben corresponder a los campos incluidos en la primera clusula SELECT y deben estar en el mismo orden. Utilice comas para separar los nombres de los campos. Cuando termine de escribir los nombres de campo, presione ENTRAR. 9. Escriba FROM, seguido del nombre de la siguiente tabla o del siguiente conjunto de tablas que desee incluir en la consulta y, a continuacin, presione ENTRAR. 10. Para especificar un criterio para un campo de una de estas tablas, escriba WHERE, seguido del nombre del campo, un operador de comparacin(normalmente, el signo de igualdad =) y el criterio. Puede agregar ms criterios al final de la clusula WHERE mediante la palabra clave AND. Cuando termine de especificar los criterios, presione ENTRAR. 11. Para incluir instrucciones SELECT adicionales en la consulta de unin, repita los pasos de 7 a 10. 12. Escriba ; para indicar el final de la consulta. 13. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar. Los resultados de la consulta de unin aparecen en la vista Hoja de datos(vista Hoja de datos: vista que muestra datos de una tabla, un formulario, una consulta, una vista o un procedimiento almacenado con formato de filas y columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.).Volver al principioSugerencias para el uso de consultas de unin Si desea poder distinguir qu filas provienen de qu tabla, puede agregar una cadena de texto como un campo a cada una de las instrucciones SELECT. Por ejemplo, si una instruccin SELECT recupera campos de una tabla denominada Products (Productos) y otras instrucciones SELECT recuperan campos de una tabla denominada Services (Servicios), puede agregar la cadena "Product" (Producto) como un campo al final de la primera instruccin y "Service" (Servicio) al final de la segunda instruccin. Tambin puede asignar un alias de campo (por ejemplo, "type" (tipo)) a las cadenas mediante la palabra clave AS, tal y como se muestra en el ejemplo siguiente: SELECT field1, field2, ... "Product" AS typeSELECT field1, field2, ... "Service" AS typeLos resultados de la consulta incluiran un campo denominado "type" que muestra si la fila proviene de la tabla de productos o la tabla de servicios. Cada palabra clave UNION combina las instrucciones SELECT que figuran inmediatamente antes y despus de la misma. Si se utiliza la palabra clave ALL con algunas de las palabras clave UNION en la consulta, los resultados incluirn las filas duplicadas de los pares de instrucciones SELECT combinadas mediante UNION ALL pero no incluirn las filas duplicadas de las instrucciones SELECT combinadas mediante UNION sin la palabra clave ALL. Aunque el nmero, los tipos de datos y el orden de los campos en las consultas de seleccin que se combinan en una consulta de unin deben corresponderse, puede utilizar expresiones, como clculos o subconsultas, para hacer que se correspondan. Por ejemplo, puede hacer coincidir un campo de ao de dos caracteres con un campo de ao de cuatro caracteres mediante la funcin Der para extraer los dos ltimos dgitos del ao de cuatro caracteres. Si desea utilizar los resultados de una consulta de unin para crear una nueva tabla, puede utilizar la consulta de unin como entrada para una nueva consulta de seleccin y, a continuacin, utilizar esa consulta de seleccin como base de una consulta de creacin de tabla(consulta de creacin de tabla: consulta (instruccin SQL) que crea una nueva tabla y, posteriormente, crea registros (filas) en ella copiando registros de una tabla existente o del resultado de una consulta.): 1. Cree y guarde la consulta de unin. 2. En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta. 3. En el cuadro de dilogo Mostrar tabla, haga clic en la pestaa Consultas. 4. Haga doble clic en la consulta de unin y, a continuacin, cierre el cuadro de dilogo Mostrar tabla. Nota Si aparece una advertencia de seguridad en la barra de mensajes, las consultas de accin, como las consultas de creacin de tabla, pueden estar deshabilitadas. Para habilitar las consultas de accin de modo que se ejecuten, haga clic en Opciones en la barra de mensajes y, a continuacin, haga clic en Habilitar este contenido en el cuadro de dilogo Opciones de seguridad de Microsoft Office.5. En la cuadrcula de diseo de consultas, en la ficha de objeto de la consulta de unin, haga doble clic en el asterisco (*) para usar todos los campos de la consulta de unin para crear una nueva tabla. O bien,Haga doble clic en cada campo que desee utilizar en la nueva tabla.6. En el grupo Tipo de consulta de la ficha Diseo, haga clic en Crear tabla. 7. En el cuadro de dilogo Crear tabla, escriba un nombre para la nueva tabla, especifique de manera opcional otra base de datos en la que se va a crear la tabla y, a continuacin, haga clic en Aceptar. 8. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar. Puede utilizar una consulta de unin para realizar una combinacin externa(combinacin externa: combinacin en la que los registros coincidentes de dos tablas se unen en un nico registro en los resultados de la consulta y, al menos, una tabla aporta todos sus registros, incluso si los valores del campo combinado no coinciden con los de la otra tabla.) completa. Una combinacin externa completa no limita las filas que se devuelven de cualquiera de las tablas combinadas sino que combina las filas basndose en los valores del campo de combinacin. Para utilizar una consulta de unin para realizar una combinacin externa completa:5. Cree una consulta que tenga una combinacin externa izquierda en el campo que desee usar para una combinacin externa completa. 5. En la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuacin, haga clic en Vista SQL. 5. Presione CTRL+C para copiar el cdigo SQL. 5. Elimine el punto y coma al final de la clusula FROM y, a continuacin, presione ENTRAR. 5. Escriba UNION y, a continuacin, presione ENTRAR. Nota No utilice la palabra clave ALL cuando utilice una consulta de unin para realizar una combinacin externa completa.5. Presione CTRL+V para pegar el cdigo SQL copiado en el paso 3. 5. En el cdigo que acaba de pegar, cambie LEFT JOIN a RIGHT JOIN. 5. Elimine el punto y coma al final de la segunda clusula FROM y, a continuacin, presione ENTRAR. 5. Agregue una clusula WHERE que especifique que el valor del campo de combinacin es NULL en la primera tabla de la clusula FROM (tabla a la izquierda). Por ejemplo, si la clusula FROM es:FROM Products RIGHT JOIN [Order Details] ON Products.ID = [Order Details].[Product ID]Agregue la siguiente clusula WHERE:WHERE Products.ID IS NULL5. Escriba un punto y coma (;) al final de la clusula WHERE para indicar el final de la consulta de unin. 5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Volver al principioAccess > Disear aplicacionesCrear o modificar tablas o ndices mediante una consulta de definicin de datosMostrar todoOcultar todoPuede crear y modificar tablas, restricciones, ndices y relaciones. Para ello, puede escribir consultas de definicin de datos en la vista SQL.En este artculo se explican las consultas de definicin de datos y se muestra cmo usar esas consultas para crear tablas, ndices, restricciones y relaciones. Este artculo tambin le puede ayudar a decidir cundo debe usar una consulta de definicin de datos. Nota No puede usar estos procedimientos en una base de datos web.En este artculo:

Informacin generalCrear o modificar una tablaCrear un ndiceCrear una restriccin o una relacin

Informacin generalA diferencia de otras consultas, una consulta de definicin de datos no recupera datos. En cambio, una consulta de definicin de datos usa el lenguaje de definicin de datos para crear, modificar o eliminar objetos de base de datos. Nota El lenguaje de definicin de datos (DDL) forma parte del Lenguaje de consulta estructurado (SQL).Las consultas de definicin de datos pueden resultar muy tiles. Puede eliminar y volver a crear partes del esquema de la base de datos regularmente con tan solo ejecutar algunas consultas. Considere la posibilidad de usar una consulta de definicin de datos si est familiarizado con las instrucciones SQL y tiene previsto eliminar y volver a crear tablas, restricciones, ndices y relaciones concretos.AdvertenciaEl uso de consultas de definicin de datos para modificar objetos de base de datos puede ser arriesgado porque las acciones no van acompaadas de cuadros de dilogo de confirmacin. Si comete un error, puede perder datos o cambiar el diseo de una tabla sin darse cuenta. Tenga cuidado cuando use una consulta de definicin de datos para modificar objetos de la base de datos. Si no es responsable de mantener la base de datos que va a usar, debe consultar al administrador de esa base de datos antes de ejecutar una consulta de definicin de datos.ImportanteHaga una copia de seguridad de todas las tablas involucradas antes de ejecutar una consulta de definicin de datos.Palabras clave de DDLPalabra claveUso

CREATECrea un ndice o una tabla que an no existe.

ALTERModifica una tabla o una columna existente.

DROP Elimina una tabla, columna o restriccin existente.

ADDAgrega una columna o una restriccin a una tabla.

COLUMNSe usa con ADD, ALTER o DROP.

CONSTRAINTSe usa con ADD, ALTER o DROP.

INDEXSe usa con CREATE.

TABLESe usa con ALTER, CREATE o DROP.

Volver al principioCrear o modificar una tablaPara crear una tabla, puede utilizar un comando CREATE TABLE. Un comando CREATE TABLE tiene la siguiente sintaxis:CREATE TABLE table_name (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...][, CONSTRAINT constraint1 [, ...]])Los nicos elementos necesarios de un comando CREATE TABLE son el propio comando CREATE TABLE y el nombre de la tabla, aunque por lo general es posible que desee definir algunos campos u otros aspectos de la tabla. Vea este sencillo ejemplo.Supongamos que desea crear una tabla para almacenar el nombre, el ao y el precio de los vehculos usados que est considerando comprar. Desea permitir hasta 30 caracteres para el nombre y 4 caracteres para el ao. Si desea utilizar una consulta de definicin de datos para crear la tabla, siga este procedimiento:Nota Primero debe habilitar el contenido de la base de datos para poder ejecutar la consulta de definicin de datos: En la Barra de mensajes, haga clic en Habilitar contenido.Crear una tabla1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Modificar una tablaPara modificar una tabla, utilice un comando ALTER TABLE. Puede utilizar un comando ALTER TABLE para agregar, modificar o quitar columnas o restricciones. Un comando ALTER TABLE tiene la siguiente sintaxis:ALTER TABLE table_name predicatedonde predicate puede ser cualquiera de los siguientes valores: ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint] ADD CONSTRAINT multifield_constraint ALTER COLUMN field type[(size)] DROP COLUMN field DROP CONSTRAINT constraintSupongamos que desea agregar un campo de texto de 10 caracteres para almacenar informacin sobre el estado de cada vehculo. Puede seguir este procedimiento:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: ALTER TABLE Cars ADD COLUMN Condition TEXT(10)5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Volver al principioCrear un ndicePara crear un ndice en una tabla existente, se utiliza un comando CREATE INDEX. Un comando CREATE INDEX tiene la siguiente sintaxis:CREATE [UNIQUE] INDEX index_name ON table (field1 [DESC][, field2 [DESC], ...]) [WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]Los nicos elementos necesarios son el comando CREATE INDEX, el nombre del ndice, el argumento ON, el nombre de la tabla que contiene los campos que se van a indizar y la lista de los campos que se van a incluir en el ndice. El argumento DESC hace que el ndice se cree en orden descendente, lo cual puede resultar til si se ejecutan frecuentemente consultas que busquen valores superiores para el campo indizado o que ordenen el campo indizado en orden descendente. De forma predeterminada, los ndices se crean en orden ascendente. El argumento WITH PRIMARY establece el campo indizado o los campos indizados como clave principal(clave principal: uno o ms campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un ndice exclusivo. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas.) de la tabla. El argumento WITH DISALLOW NULL hace que el ndice requiera que se escriba un valor para el campo indizado;es decir, no se permiten valores nulos.Supongamos que tiene una tabla denominada Cars (Vehculos) con campos en los que se almacenan el nombre, el ao, el precio y el estado de los vehculos usados que est considerando comprar. Supongamos asimismo que la tabla ha adquirido un tamao considerable y que incluye con frecuencia el campo de ao en las consultas. Puede crear un ndice en el campo de ao para que las consultas devuelvan resultados ms rpidamente mediante el procedimiento siguiente:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: CREATE INDEX YearIndex ON Cars (Year)5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Volver al principioCrear una restriccin o una relacinUna restriccin establece una condicin lgica que debe cumplir un campo o una combinacin de campos cuando se insertan valores. Por ejemplo, una restriccin UNIQUE impide que el campo restringido acepte un valor que duplique un valor existente para el campo.Una relacin es un tipo de restriccin que hace referencia a los valores de un campo o una combinacin de campos de otra tabla para determinar si un valor se puede insertar en el campo restringido o la combinacin de campos restringidos. No es necesario usar una palabra clave especial para indicar que una restriccin es una relacin.Para crear una restriccin, se utiliza una clusula CONSTRAINT en un comando CREATE TABLE o ALTER TABLE. Hay dos tipos de clusulas CONSTRAINT: clusulas para crear una restriccin en un solo campo y clusulas para crear una restriccin en varios campos.Restricciones de un solo campoUna clusula CONSTRAINT de un solo campo figura inmediatamente despus de la definicin del campo que restringe y tiene la siguiente sintaxis:CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES foreign_table [(foreign_field)] [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]}Supongamos que tiene una tabla denominada Cars (Vehculos) con campos en los que se almacenan el nombre, el ao, el precio y el estado de los vehculos usados que est considerando comprar. Supongamos asimismo que con frecuencia olvida especificar un valor para el estado del vehculo y que siempre desea registrar esta informacin. Puede crear una restriccin en el campo de estado que evite que ese campo se quede en blanco, siguiendo este procedimiento:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Ahora supongamos que, despus de un tiempo, se da cuenta de que hay muchos valores similares en el campo del estado de los vehculos que deberan ser iguales. Por ejemplo, algunos de los vehculos tienen como valor de estado pobre y otros tienen el valor deficiente.Nota Si desea seguir con los procedimientos restantes, agregue algunos datos simulados a la tabla Cars que cre en los pasos anteriores.Despus de limpiar los valores para que sean ms coherentes, podr crear una tabla denominada CarCondition (EstadoVehculo) con un campo denominado Condition (Estado), que contenga todos los valores que desee utilizar para el estado de los vehculos:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: CREATE TABLE CarCondition (Condition TEXT(10))5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar. 6. Cree una clave principal para la tabla mediante una instruccin ALTER TABLE: ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY7. Para insertar los valores del campo Condition (Estado) de la tabla Cars (Vehculos) en la nueva tabla CarCondition (EstadoVehculo), escriba la siguiente instruccin SQL en la ficha de objeto de la vista SQL: INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;Nota La instruccin SQL en este paso es una consulta de datos anexados(consulta de datos anexados: consulta de accin que agrega los registros del conjunto de resultados de una consulta al final de una tabla existente.). A diferencia de las consultas de definicin de datos, las consultas de datos anexados terminan con un punto y coma.8. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Crear una relacin mediante una restriccinPara requerir que cualquier nuevo valor que se inserte en el campo Condition (Estado) de la tabla Cars (Vehculos) coincida con un valor del campo Condition (Estado) de la tabla CarCondition (EstadoVehculo), puede crear una relacin entre CarCondition y Cars en el campo Condition, siguiendo este procedimiento:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Restricciones de varios camposUna clusula CONSTRAINT de varios campos solo se puede usar fuera de una clusula de definicin de campo y tiene la siguiente sintaxis:CONSTRAINT constraint_name {PRIMARY KEY (pk_field1[, pk_field2[, ...]]) | UNIQUE (unique1[, unique2[, ...]]) | NOT NULL (notnull1[, notnull2[, ...]]) | FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]]) REFERENCES foreign_table [(fk_field1[, fk_field2[, ...]])] | [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]}Examinemos otro ejemplo con la tabla Cars (Vehculos). Supongamos que desea asegurarse de que no haya dos registros en la tabla Cars con el mismo conjunto de valores para el nombre, el ao, la condicin y el precio. Puede crear una restriccin UNIQUE que se aplique a estos campos mediante este procedimiento:1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos. La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.4. Escriba la siguiente instruccin SQL: ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)5. En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.Volver al principio

Vea tambin Conceptos bsicos del diseo de una base de datos Introduccin a Access SQL Introduccin a la programacin de AccessAccess > ConsultasFacilitar la lectura de datos de resumen mediante una consulta de tabla de referencias cruzadasMostrar todoOcultar todoCuando desee reestructurar los datos de resumen para facilitar su lectura y comprensin, considere la posibilidad de usar una consulta de tabla de referencias cruzadas.Una consulta de tabla de referencias cruzadas calcula una suma, un promedio u otra funcin de agregado(funcin de agregado: funcin, como Suma, Cuenta, Promedio o Var, que se utiliza para calcular totales.) y, despus, agrupa los resultados en dos conjuntos de valores: uno en la parte lateral de la hoja de datos y el otro en la parte superior.Nota No se puede usar una consulta de tabla de referencias cruzadas en un explorador web. Si desea ejecutar una consulta de tabla de referencias cruzadas en una base de datos web, primero debe abrir la base de datos con Access.En este artculo

Informacin generalCrear una consulta de tabla de referencias cruzadasUsar rangos o intervalos para los encabezadosSolicitar un parmetro para limitar los encabezados de filaReemplazar los valores Null por cerosSugerencias para consultas de tabla de referencias cruzadas

Informacin generalUna consulta de tabla de referencias cruzadas es un tipo de consulta de seleccin(consulta de seleccin: consulta que formula una pregunta sobre los datos almacenados en las tablas y devuelve un conjunto de resultados en forma de una hoja de datos sin modificar los datos de las tablas.). Al ejecutar una consulta de tabla de referencias cruzadas, los resultados se muestran en una hoja de datos que tiene una estructura diferente a la de otros tipos de hojas de datos.La estructura de una consulta de tabla de referencias cruzadas puede resultar ms fcil de leer que una consulta de seleccin simple con los mismos datos, como se muestra en la siguiente ilustracin.

En esta consulta de seleccin, los datos de resumen estn agrupados verticalmente por empleado y categora.Una consulta de tabla de referencias cruzadas puede mostrar los mismos datos, pero agrupados horizontal y verticalmente para reducir el tamao de la hoja de datos y facilitar su lectura.

Crear consultas de tabla de referencias cruzadasCuando cree una consulta de tabla de referencias cruzadas, deber especificar los campos que contienen los encabezados de fila, el campo que contiene los encabezados de columna y el campo que contiene los valores que se van a resumir. Slo puede usar un campo cuando especifique los encabezados de columna y los valores que se van a resumir, y tres campos como mximo cuando especifique los encabezados de fila.SugerenciaPuede usar tambin una expresin para generar los encabezados de fila, los encabezados de columna y los valores que se van a resumir.

Las columnas (hasta tres) de este lado contienen los encabezados de fila. Los nombres de los campos que se usan como encabezados de fila aparecen en la fila superior de estas columnas.Aqu se muestran los encabezados de fila. El nmero de filas de la hoja de datos de tabla de referencias cruzadas puede aumentar rpidamente si se usan varios campos de encabezado de fila, ya que se muestra cada combinacin de encabezados de fila.Las columnas de este lado contienen los encabezados de columna y los valores de resumen. Tenga en cuenta que el nombre del campo de encabezado de columna no aparece en la hoja de datos. Aqu se muestran los valores de resumen.

Mtodos para crear una consulta de tabla de referencias cruzadasUsar el Asistente para consultas de referencias cruzadasEste asistente suele ser la forma ms rpida y sencilla de crear una consulta de tabla de referencias cruzadas. Realiza automticamente la mayor parte del trabajo, pero hay algunas opciones que no proporciona.El asistente presenta las siguientes ventajas: Es fcil de usar.Para usarlo, incielo y responda a una serie de preguntas autoguiadas. Puede agrupar automticamente fechas en intervalos.Si usa un campo que contiene datos de fecha y hora para los encabezados de columna, el asistente le ayudar tambin a agrupar las fechas en intervalos, como meses o trimestres. SugerenciaSi desea usar valores de un campo de fecha y hora para los encabezados de columna, pero desea agrupar las fechas en intervalos que el asistente no proporciona, como un ao fiscal o un bienio, no use el asistente para crear la consulta. En lugar de ello, cree la consulta de tabla de referencias cruzadas en la vista Diseo y use una expresin para crear los intervalos. Se puede usar como punto de partida.Puede usar el asistente para crear la consulta bsica de tabla de referencias cruzadas que desee y, despus, ajustar el diseo de la consulta en la vista Diseo.Sin embargo, con el asistente no se puede: Usar ms de una tabla o consulta como origen de registros(origen de registros: origen de datos subyacente de un formulario, informe o pgina de acceso a datos. En una base de datos de Access, puede ser una tabla, una consulta o una instruccin SQL. En un proyecto de Access, puede ser una tabla, una vista, una instruccin SQL o un procedimiento almacenado.). Usar una expresin(expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar datos.) para crear campos. Agregar un mensaje de solicitud de parmetros(consulta de parmetros: consulta en la que un usuario especifica interactivamente uno o ms valores de criterio. Una consulta de parmetros no es un tipo diferente de consulta; ms bien, extiende la flexibilidad de una consulta.). Especificar una lista de valores fijos para usarlos como encabezados de columna. Nota En el ltimo paso del asistente, puede elegir si desea modificar la consulta en la vista Diseo. Esto le permite agregar elementos de diseo de consulta que el asistente no admite, como orgenes de registros adicionales.Trabajar en la vista Diseo La vista Diseo le ofrece un mayor control sobre el diseo de la consulta. Admite las caractersticas que no estn disponibles en el asistente.Considere la posibilidad de usar la vista Diseo para crear la consulta de tabla de referencias cruzadas si desea: Tener un mayor control sobre el proceso. El asistente toma algunas decisiones por el usuario. Usar ms de una tabla o consulta como origen de registros. Agregar un mensaje de solicitud de parmetros a la consulta. Usar expresiones como campos en la consulta. Especificar una lista de valores fijos para usarlos como encabezados de columna. Practicar el uso de la cuadrcula de diseo(cuadrcula de diseo: cuadrcula utilizada para disear una consulta o un filtro en la vista Diseo de consulta o en la ventana Filtro u orden avanzado. Para las consultas, esta cuadrcula se conoca antes como la cuadrcula QBE.).Escribir una consulta en la vista SQLPuede escribir una consulta de tabla de referencias cruzadas en la vista SQL si lo prefiere. Sin embargo, no puede especificar tipos de datos de parmetros mediante la vista SQL. Si desea usar un parmetro en la consulta de tabla de referencias cruzadas, debe especificar el tipo de datos de parmetros modificando la consulta en la vista Diseo.SugerenciaRecuerde:no tiene por qu usar un nico mtodo para crear una consulta de tabla de referencias cruzadas. Puede usar el asistente para crear la consulta y, despus, usar la vista Diseo para modificar el diseo de la consulta.Volver al principioCrear una consulta de tabla de referencias cruzadasCrear una consulta de tabla de referencias cruzadas con el Asistente para consultas de referencias cruzadasCrear una consulta de tabla de referencias cruzadas en la vista DiseoCrear una consulta de tabla de referencias cruzadas en la vista SQL

Crear una consulta de tabla de referencias cruzadas con el Asistente para consultas de referencias cruzadasEl uso del Asistente para consultas de referencias cruzadas requiere que use una sola tabla o consulta como origen de registros para la consulta. Si una nica tabla no tiene todos los datos que desea incluir en la consulta, comience por crear una consulta de seleccin que devuelva los datos que desee. Para obtener ms informacin acerca de la creacin de una consulta de seleccin, consulte la seccin Vea tambin.1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Asistente para consultas. 2. En el cuadro de dilogo Nueva consulta, haga clic en Asistente para consultas de referencias cruzadas y en Aceptar. Se inicia el Asistente para consultas de referencias cruzadas.3. En la primera pgina del asistente, elija la tabla o consulta que desee usar para crear una consulta de tabla de referencias cruzadas. 4. En la siguiente pgina, elija el campo que contiene los valores que desee usar como encabezados de fila. Puede seleccionar hasta tres campos para los orgenes de encabezados de fila, pero cuantos menos encabezados de fila use, ms fcil ser de leer la hoja de datos de tabla de referencias cruzadas.Nota Si elige ms de un campo para los encabezados de fila, el orden en que elija los campos determinar el orden predeterminado en el que se ordenarn los resultados.5. En la siguiente pgina, elija el campo que contiene los valores que desee usar como encabezados de columna. En general, debe elegir un campo que contenga pocos valores para facilitar la lectura de los resultados. Por ejemplo, puede ser preferible usar un campo que slo tenga algunos valores posibles (por ejemplo, sexo) que usar un campo que pueda contener muchos valores diferentes (por ejemplo, edad).Si el campo que usa para los encabezados de columna tiene un tipo de datos de fecha y hora, el asistente agregar un paso que le permitir especificar cmo agrupar las fechas por intervalos, por ejemplo meses o trimestres.6. Si elige un campo de fecha y hora para los encabezados de columna, en la siguiente pgina del asistente se le pedir que especifique el intervalo por el que desea agrupar las fechas. Puede especificar Ao, Trimestre, Mes, Fecha o Fecha/Hora. Si no elige un campo de fecha y hora para los encabezados de columna, el asistente se saltar esta pgina. 7. En la siguiente pgina, elija un campo y una funcin para calcular valores de resumen. El tipo de datos(tipo de datos de campo: caracterstica de un campo que determina el tipo de datos que puede almacenar. Por ejemplo, un campo cuyo tipo de datos es Texto puede almacenar datos que consten de letras o nmeros, pero un campo de tipo Nmero slo puede almacenar datos numricos.) del campo que seleccione determinar qu funciones estn disponibles. 8. En la misma pgina, active o desactive la casilla de verificacin S, incluir sumas de filas para incluir o excluir las sumas de fila. Si incluye sumas de fila, la consulta de tabla de referencias cruzadas tendr un encabezado de fila adicional que usa el mismo campo y funcin que el valor del campo. Al incluir una suma de fila se inserta una columna adicional que resume las dems columnas. Por ejemplo, si la consulta calcula el promedio de edad por ubicacin y sexo (con encabezados de columna de sexo), la columna adicional calcula el promedio de edad por ubicacin para todos los sexos. Nota Puede cambiar la funcin que se usa para producir sumas de fila si edita la consulta de tabla de referencias cruzadas en la vista Diseo.9. En la siguiente pgina del asistente, escriba un nombre para la consulta y, despus, especifique si desea ver los resultados o modificar el diseo de la consulta.Volver al principioCrear una consulta de tabla de referencias cruzadas en la vista DiseoAl usar la vista Diseo para crear la consulta de tabla de referencias cruzadas, puede usar todos los orgenes de registros (tablas y consultas) que desee. Sin embargo, puede simplificar el diseo si crea primero una consulta de seleccin que devuelva todos los datos que desea y, despus, usa dicha consulta como nico origen de registros para la consulta de tabla de referencias cruzadas. Para obtener ms informacin acerca de la creacin de una consulta de seleccin, consulte la seccin Vea tambin.Al crear una consulta de tabla de referencias cruzadas en la vista Diseo, se usan las filas Total y Tabla de referencias cruzadas de la cuadrcula de diseo para especificar qu valores de campo se convertirn en encabezados de columna, cules se convertirn en encabezados de fila y para qu campo se debe proporcionar la suma, promedio, recuento u otro clculo.

La configuracin de estas filas determina si el campo es un encabezado de fila, un encabezado de columna o un valor de resumen.Esta configuracin muestra los valores del campo como encabezados de fila.Esta configuracin muestra los valores del campo como encabezados de columna.Esta configuracin produce los valores de resumen.

Crear la consulta1. En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. En el cuadro de dilogo Mostrar tabla, haga doble clic en cada tabla o consulta que desee usar como origen de registros. Si utiliza ms de un origen de registros, asegrese de que las tablas o consultas se combinan(combinacin: asociacin entre un campo de una tabla o consulta y un campo del mismo tipo de datos de otra tabla o consulta. Las combinaciones indican al programa cmo se relacionan los datos. Los registros que no coinciden pueden incluirse o excluirse, dependiendo del tipo de combinacin.) por campos que tengan en comn. Para obtener ms informacin acerca de la combinacin de tablas y consultas, consulte la seccin Vea tambin.3. Cierre el cuadro de dilogo Mostrar tabla. 4. En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Tabla de referencias cruzadas. 5. En la ventana de diseo de la consulta, haga doble clic en cada campo que desee usar como origen de encabezados de fila. Puede seleccionar hasta tres campos para los encabezados de fila. 6. En la cuadrcula de diseo de la consulta, en la fila Tabla de referencias cruzadas de cada campo de encabezado de fila, seleccione Encabezado de fila. Puede especificar una expresin en la fila Criterios para limitar los resultados de dicho campo. Tambin puede usar la fila Ordenar para especificar un criterio de ordenacin para un campo.7. En la ventana de diseo de la consulta, haga doble clic en el campo que desee usar como origen de encabezados de columna. Para los encabezados de columna, slo puede seleccionar un campo. 8. En la cuadrcula de diseo de la consulta, en la fila Tabla de referencias cruzadas del campo de encabezado de columna, seleccione Encabezado de columna. Puede escribir una expresin en la fila Criterios para limitar los resultados del campo de encabezado de columna. Sin embargo, el uso de una expresin de criterios con el campo de encabezado de columna no limita el nmero de columnas que devuelve la consulta de tabla de referencias cruzadas. En su lugar, limita qu columnas contienen datos. Por ejemplo, suponga que tiene un campo de encabezado de columna con tres valores posibles: rojo, verde y azul. Si aplica el criterio ='azul' al campo de encabezado de columna, la consulta seguir mostrando una columna para rojo y otra para verde, pero slo la columna de azul contendr datos. Nota Si desea limitar los valores que se muestran como encabezados de columna, puede especificar una lista de valores fijos mediante la propiedad Encabezados de columna de la consulta. Para obtener ms informacin, vea el tema sobre cmo especificar valores fijos para los encabezados de columna.9. En la ventana de diseo de la consulta, haga doble clic en el campo que desee usar para calcular valores de resumen. Slo puede seleccionar un campo para valores de resumen. 10. En la cuadrcula de diseo de la consulta, en la fila Total del campo de valores de resumen, seleccione una funcin de agregado que se usar para calcular los valores. 11. En la fila Tabla de referencias cruzadas del campo de valores de resumen, seleccione Valor. No se pueden especificar criterios para un campo de valores de resumen ni ordenar por dicho campo.12. En la ficha Diseo, en el grupo Resultados, haga clic en Ejecutar.Especificar valores fijos para los encabezados de columnaSi desea especificar valores fijos para los encabezados de columna, puede establecer la propiedad Encabezados de columna de la consulta.1. Abra la consulta de tabla de referencias cruzadas en la vista Diseo. 2. Si la hoja de propiedades no est visible, presione F4 para mostrarla. 3. En la hoja de propiedades, justo encima de la ficha General, asegrese de que el Tipo de seleccin es Propiedades de la consulta. Si no lo es, haga clic en un lugar vaco del espacio situado encima de la cuadrcula de diseo de la consulta. 4. En la hoja de propiedades, en la ficha General, en la propiedad Encabezados de columna, especifique la lista de valores separados por comas que desee usar como encabezados de columna. Nota Algunos caracteres (como la mayora de los signos de puntuacin) no estn permitidos en los encabezados de columna. Si usa estos caracteres en la lista de valores, Access sustituye cada uno de ellos por el carcter de subrayado (_).Volver al principioCrear una consulta de tabla de referencias cruzadas en la vista SQLSintaxis SQL para una consulta de tabla de referencias cruzadasUna consulta de tabla de referencias cruzadas se expresa en SQL como una instruccin TRANSFORM. La sintaxis de una instruccin TRANSFORM es la siguiente:TRANSFORM funcinDeAgregadoinstruccinSelectPIVOT campoDinmico [IN (valor1[, valor2[, ...]])]La instruccin TRANSFORM consta de los siguientes elementos:ElementoDescripcin

funcinDeAgregadoFuncin de agregado de SQL que opera sobre los datos seleccionados.

instruccinSelectUna instruccin SELECT.

campoDinmicoCampo o expresin(expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar datos.) que desea usar para crear encabezados de columna en el conjunto de resultados de la consulta.

valor1, valor2Valores fijos que se usan para crear encabezados de columna.

La vista SQL no limita el nmero de tablas o consultas que se pueden usar como orgenes de registros para una consulta de tabla de referencias cruzadas. Sin embargo, puede simplificar el diseo si crea una consulta de seleccin que devuelva todos los datos que desee usar en la consulta y despus usa dicha consulta de seleccin como origen de registros. Para obtener ms informacin acerca de la creacin de una consulta de seleccin, consulte la seccin Vea tambin.1. En la ficha Diseo, en el grupo Macros y cdigo, haga clic en Diseo de la consulta. 2. Cierre el cuadro de dilogo Mostrar tabla. 3. En la ficha Diseo, en el grupo Resultados, haga clic en SQL. 4. En la ficha Objeto SQL, escriba o pegue el siguiente cdigo SQL: 5. TRANSFORM 6. SELECT 7. FROM 8. GROUP BY 9. PIVOT ;10. En la primera lnea, a continuacin de TRANSFORM, escriba una expresin que se usar para calcular valores de resumen; por ejemplo, Sum([Cantidad]). Nota Si usa ms de una tabla o consulta como origen de registros, incluya el nombre de la tabla o consulta como parte del nombre de cada campo; por ejemplo, Sum([Gasto].[Cantidad]).11. En la segunda lnea, a continuacin de SELECT, escriba una lista de campos o expresiones de campo que desee usar para los encabezados de columna. Separe los elementos de la lista mediante comas; por ejemplo, [Presupuesto].[Id_Dpto], [Gasto].[Tipo]. 12. En la tercera lnea, a continuacin de FROM, escriba una lista de las tablas o consultas que use como orgenes de registros; por ejemplo, Presupuesto, Gasto. 13. En la cuarta lnea, a continuacin de GROUP BY, escriba la misma lista de campos que us en la clusula SELECT en el paso 6. 14. En la quinta lnea, a continuacin de PIVOT, escriba un nombre de campo o una expresin que desee usar para los encabezados de columna; por ejemplo, PIVOT [Presupuesto].[Ao].Agregar un criterio de ordenacin a un campo de encabezado de filaPara agregar un criterio de ordenacin a una consulta de tabla de referencias cruzadas en la vista SQL, use una clusula ORDER BY.1. Inserte una lnea entre la clusula GROUP BY y la clusula PIVOT. 2. En la nueva lnea, escriba ORDER BY seguido de un espacio. 3. Escriba el nombre del campo o la expresin que desee usar para ordenar; por ejemplo, ORDER BY [Gasto].[Clase_Gasto] De manera predeterminada, una clusula ORDER BY ordena los valores en orden ascendente. Si desea usar un orden descendente, escriba DESC a continuacin del nombre del campo o la expresin.4. Si desea ordenar por un campo o expresin adicional, escriba una coma y, despus, escriba el nombre del campo o la expresin adicional. La ordenacin se produce en el orden en que aparecen los campos o las expresiones en la clusula ORDER BY.Limitar los valores usados para los encabezados de fila o columnaPuede usar los siguientes procedimientos para especificar una lista de valores como encabezados de columna y agregar criterios a los campos de encabezado de fila. En estos procedimientos se supone que tiene la consulta de tabla de referencias cruzadas abierta en la vista SQL.Especificar valores fijos para usarlos como encabezados de columna Al final de la clusula PIVOT, escriba IN seguido de una lista de valores separados por comas (entre parntesis) para usarlos como encabezados de columna. Por ejemplo, IN (2007, 2008, 2009, 2010) produce cuatro encabezados de columna: 2007, 2008, 2009, 2010.Nota Si especifica un valor fijo que no corresponde a un valor del campo dinmico, el valor fijo se convierte en un encabezado de una columna vaca.Agregar criterios de consulta para limitar los encabezados de fila1. Inserte una nueva lnea a continuacin de la clusula FROM. 2. Escriba WHERE seguido de un criterio de campo. Si desea usar criterios adicionales, puede usar los operadores AND y OR para ampliar la clusula WHERE. Tambin puede usar parntesis para agrupar los criterios en conjuntos lgicos.Volver al principioUsar rangos o intervalos para los encabezadosEn ocasiones, en lugar de usar todos los valores de un campo para los encabezados de fila o columna, puede ser conveniente agrupar los valores de un campo en intervalos y, despus, usar dichos intervalos para los encabezados de fila o columna. Por ejemplo, suponga que usa un campo "Edad" para los encabezados de columna. En lugar de usar una columna para cada edad, puede ser preferible usar columnas que representen intervalos de edad.Puede usar la funcin IIf en una expresin para crear intervalos para los encabezados de fila o columna.SugerenciaSi desea crear intervalos con un campo de fecha y hora, considere la posibilidad de usar el Asistente para consultas de referencias cruzadas. El asistente le permite agrupar las fechas por intervalos de Ao, Trimestre, Mes, Fecha o Fecha/Hora. Si ninguno de estos intervalos es de su agrado, debe crear la consulta en la vista Diseo y, despus, usar la tcnica descrita en esta seccin para crear los intervalos que desea.Funcionamiento de IIfLa funcin IIf evala una expresin y, despus, devuelve un valor si la expresin es verdadera u otro valor si la expresin es falsa. Puede anidar instrucciones IIf para crear una secuencia lgica de comparaciones. Por tanto, puede usar IIf para separar valores de campos numricos en intervalos.Sintaxis de IIfIIf(expresin, parteverdadera, partefalsa)La sintaxis de la funcin IIf consta de los siguientes argumentos(argumento: valor que proporciona informacin a una accin, un evento, un mtodo, una propiedad, una funcin o un procedimiento.):ArgumentoDescripcin

expresinObligatorio. Expresin que se desea evaluar.

parteverdaderaRequerido. Valor o expresin que se devuelve si el valor de expresin es Verdadero.

partefalsaRequerido. Valor o expresin que se devuelve si el valor de expresin es Falso.

Crear intervalos mediante una expresin1. Abra la consulta de tabla de referencias cruzadas en la vista Diseo. 2. En la cuadrcula de diseo de la consulta, en la fila Campo, haga clic con el botn secundario en una columna vaca y, despus, haga clic en Zoom en el men contextual. 3. En el cuadro Zoom, escriba un alias de campo(alias (SQL): nombre alternativo para una tabla o campo en expresiones. Los alias se utilizan a menudo para acortar el nombre de una tabla o de un campo para referencias posteriores en el cdigo, a fin de evitar posibles referencias ambiguas o para proporcionar un nombre ms descriptivo en los resultados de una consulta.) seguido de dos puntos (:). 4. Escriba IIf(). 5. Entre los parntesis que siguen a IIf, escriba una expresin de comparacin que defina el primer intervalo de valores del campo. Por ejemplo, suponga que va a crear intervalos para un campo Edad y desea que cada intervalo sea de veinte aos. La expresin de comparacin del primer intervalo es [Edad]