Comparar Dos Tablas y Buscar Sólo Datos Coincidentes

Embed Size (px)

DESCRIPTION

Comparacion de tablas en access

Citation preview

Comparar dos tablas y buscar slo datos coincidentesEn ocasiones, quizs desee revisar los registros de slo una tabla si hay registros correspondientes en otra tabla que contienen uno o varios campos con datos coincidentes. Por ejemplo, puede que desee revisar los registros de los empleados que han procesado al menos un pedido para determinar qu empleados tienen derecho a una bonificacin. O bien, quizs desee revisar la informacin de contacto de los clientes que viven en la misma ciudad que un empleado para establecer coincidencias entre los empleados y los clientes de cara a reuniones personales.Cuando desee comparar dos tablas y buscar datos coincidentes, podr: Crear una consulta que combine los campos de cada tabla que contienen informacin correspondiente, mediante una relacin existente o mediante una combinacin creada para la consulta. Este mtodo proporciona un rendimiento ptimo (velocidad con la que la consulta devuelve resultados), pero no se pueden combinar campos con tipos de datos diferentes. Crear una consulta que compare los campos utilizando un campo como criterio del otro. Este mtodo suele ser ms lento que el de las combinaciones porque las combinaciones eliminan filas de los resultados de una consulta antes de que se lean las tablas subyacentes, mientras que los criterios se aplican a los resultados de una consulta despus de que se lean las tablas subyacentes. Sin embargo, se puede utilizar un campo como criterio para comparar campos con tipos de datos diferentes, lo que no se puede hacer con el mtodo de las combinaciones.En este artculo se describe cmo comparar dos tablas para identificar datos coincidentes y se proporcionan datos de ejemplo que se pueden utilizar con procedimientos de ejemplo.En este artculo no se abordan los datos duplicados ni su impacto. Para obtener ms informacin sobre cmo buscar, ocultar o eliminar datos duplicados, vea la ayuda o utilice los vnculos que figuran en la seccinVea tambin.Comparar dos tablas mediante combinacionesPara comparar dos tablas mediante combinaciones, cree una consulta de seleccin que incluya ambas tablas. Si an no hay una relacin entre las tablas de los campos que contienen los datos correspondientes, cree una combinacin en los campos que desee examinar para determinar si tienen datos coincidentes. Puede crear tantas combinaciones como desee, pero cada par de campos combinados debe tener el mismo tipo de datos o un tipo de datos compatible.Supongamos que es un investigador institucional en una universidad y desea comprobar cmo los recientes cambios curriculares en el departamento de matemticas han afectado a las notas de los alumnos. Le interesan en concreto las notas de los alumnos que tienen matemticas como asignatura principal. Ya tiene una tabla en la que se almacenan los datos de las asignaturas principales de los alumnos y otra tabla en la que se almacenan los datos de las inscripciones. Los datos referentes a las notas se almacenan en la tabla Inscripciones y los datos referentes a las asignaturas principales de los alumnos se almacenan en la tabla Asignaturas principales. Para ver cmo han cambiado las notas de los alumnos con matemticas como asignatura principal desde los recientes cambios curriculares, deber revisar los registros de la tabla de inscripciones que tengan registros correspondientes en la tabla de asignaturas principales.Preparar datos de ejemploEn este ejemplo, va a crear una consulta que determine cmo los cambios curriculares en el departamento de matemticas han afectado a las notas de los alumnos con matemticas como asignatura principal. Utilice las dos siguientes tablas de ejemplo, Asignaturas principales e Inscripciones. Agregue estas dos tablas de ejemplo a una base de datos.Microsoft Office Access 2007 proporciona varias maneras de agregar estas tablas de ejemplo a una base de datos. Puede introducir manualmente los datos, puede copiar cada tabla a un programa de hoja de clculo (como Microsoft Office Excel 2007) y, a continuacin, importar las hojas de clculo a Office Access 2007, o bien, puede pegar los datos en un editor de texto, como Bloc de notas y, a continuacin, importar los datos de los archivos de texto resultantes.Los pasos descritos en esta seccin explican cmo introducir manualmente datos en una hoja de datos en blanco y cmo copiar las tablas de ejemplo a Office Excel 2007 y, a continuacin, importarlas a Access 2007. Para obtener ms informacin sobre cmo crear e importar datos de texto, vea el artculoImportar o vincular a datos de un archivo de texto.Asignaturas principalesId del alumnoAoAsignatura principal

1234567892005Matemticas

2233344442005Ingls

9876543212005Matemticas

1357913572005Historia

1470258362005Biologa

7070707072005Matemticas

1234567892006Matemticas

2233344442006Ingls

9876543212006Psicologa

1357913572006Historia del arte

1470258362006Biologa

7070707072006Matemticas

InscripcionesId del alumnoAoTrimestrePrograma de estudiosCursoNota

12345678920053Matemticas221A

12345678920053Ingls101B

12345678920061Matemticas242C

12345678920061Matemticas224C

22333444420053Ingls112A

22333444420053Matemticas120C

22333444420061Polticas110A

22333444420061Ingls201B

98765432120053Matemticas120A

98765432120053Psicologa101A

98765432120061Matemticas221B

98765432120061Matemticas242C

13579135720053Historia102A

13579135720053Historia del arte112A

13579135720061Matemticas120B

13579135720061Matemticas141C

14702583620053Biologa113B

14702583620053Qumica113B

14702583620061Matemticas120D

14702583620061Estadstica114B

70707070720053Matemticas221B

70707070720053Estadstica114A

70707070720061Matemticas242D

70707070720061Matemticas224C

Si desea utilizar un programa de hoja de clculo para introducir los datos de ejemplo, puedeomitir la seccin siguiente.Introducir manualmente los datos de ejemplo1. Abra una base de datos nueva o existente.2. En el grupoTablasde la fichaCrear, haga clic enTabla.

Access agrega una nueva tabla en blanco a la base de datos.NOTANo es necesario seguir este paso si abre una nueva base de datos en blanco, pero s ser necesario cada vez que necesite agregar una tabla a la base de datos.3. Haga doble clic en la primera celda de la fila de encabezado y, a continuacin, escriba el nombre del campo en la tabla de ejemplo.De forma predeterminada, Access denota los campos en blanco en la fila de encabezado con el textoAgregar nuevo campo, como:

4. Utilice las teclas de direccin para desplazarse a la siguiente celda de encabezado en blanco y, a continuacin, escriba el segundo nombre de campo. (Tambin puede hacer doble clic en la nueva celda.) Repita este paso para cada nombre de campo.5. Escriba los datos en la tabla de ejemplo.Mientras escribe los datos, Access deduce un tipo de datos para cada campo. Cada campo tiene un tipo de datos especfico, como Nmero, Texto o Fecha/Hora. Al establecer los tipos de datos, se ayuda a garantizar que se introducen los datos correctos y tambin se ayuda a evitar errores, como el uso de un nmero de telfono en un clculo. Para estas tablas de ejemplo, deje que Access deduzca el tipo de datos, pero no olvide revisar el tipo de datos deducido por Access para cada campo.6. Cuando termine de introducir los datos, haga clic enGuardaro presione la tecla CTRL+G.Aparece el cuadro de dilogoGuardar como.7. En el cuadroNombre de tabla, escriba el nombre de la tabla de ejemplo y, a continuacin, haga clic enAceptar.Utilice el nombre de cada tabla de ejemplo (por ejemplo, Asignaturas principales) porque las consultas en las secciones de procedimiento de este artculo tambin utilizan esos nombres.Cuando termine de escribir los datos de ejemplo, est listo paracomparar las dos tablas.Omita la siguiente seccin (Crear las hojas de clculo de ejemplo), a menos que desee obtener informacin sobre cmo crear una hoja de clculo basada en los datos de ejemplo de las tablas de la seccin anterior.Crear las hojas de clculo de ejemplo1. Inicie el programa de hoja de clculo y cree un nuevo archivo en blanco. Si utiliza Excel, se crea de manera predeterminada un nuevo libro en blanco cuando se inicia el programa.2. Copie laprimera tabla de ejemplode la seccin anterior y pguela en la primera hoja de clculo, empezando en la primera celda. Asegrese de copiar la fila de encabezado, ya que contiene los nombres de campo de la tabla de ejemplo.3. Mediante la tcnica proporcionada por el programa de hoja de clculo, asigne a la hoja de clculo el mismo nombre que el de la tabla de ejemplo. Por ejemplo, cuando pegue los datos de ejemplo deInscripciones, asigne el nombre Inscripciones a la hoja de clculo.4. Repita los pasos 2 y 3, copiando lasegunda tabla de ejemploen una hoja de clculo en blanco y cambiando el nombre la hoja de clculo.NOTAPuede que tenga que agregar hojas de clculo al archivo. Para obtener informacin sobre cmo agregar hojas de clculo a un archivo de hoja de clculo, vea la ayuda del programa de hoja de clculo.5. Guarde el libro en una ubicacin adecuada del equipo o de la red y vaya al siguiente conjunto de pasos.Crear tablas de base de datos a partir de las hojas de clculo1. En una base de datos nueva o existente:En el grupoImportarde la fichaDatos externos, haga clic enExcel.

O bien,Haga clic enMsy, a continuacin, seleccione en la lista un programa de hoja de clculo.Aparece el cuadro de dilogoObtener datos externos: Hoja de clculo de nombre de programa.2. Haga clic enExaminar, busque y abra el archivo de hoja de clculo que cre en los pasos anteriores y, a continuacin, haga clic enAceptar.Se iniciar el Asistente para importacin de hojas de clculo.De manera predeterminada, el asistente selecciona la primera hoja de clculo del libro (Asignaturas principales, si sigui los pasos de la seccin anterior), y los datos de esa hoja de clculo aparecen en la seccin inferior de la pgina del asistente.3. Haga clic enSiguiente.4. En la siguiente pgina del asistente, active la casilla de verificacinPrimera fila contiene encabezados de columnay, a continuacin, haga clic enSiguiente.5. En la siguiente pgina, puede utilizar los cuadros de texto y listas bajoOpciones de campopara cambiar los nombres de campo y tipos de datos, o bien, para omitir campos de la operacin de importacin. Para este ejemplo, no tiene que cambiar nada. Haga clic enSiguiente.6. En la siguiente pgina, seleccione la opcinSin clave principaly, a continuacin, haga clic enSiguiente.7. De manera predeterminada, Access aplica el nombre de la hoja de clculo a la nueva tabla. Acepte el nombre en el cuadroImportar a la tablay, a continuacin, haga clic enFinalizar.8. En la pginaGuardar los pasos de la importacin, haga clic enCerrarpara completar el asistente.9. Repita los pasos del 1 al 7 hasta que haya creado una tabla a partir de cada hoja de clculo del archivo.Comparar las tablas de ejemplo y buscar registros coincidentes mediante combinacionesAhora ya est preparado para comparar la tabla Inscripciones con la tabla Asignaturas principales. Dado que no ha definido ninguna relacin entre las dos tablas, debe crear combinaciones entre los campos apropiados en la consulta. Las tablas tienen ms de un campo en comn. Debe crear una combinacin por cada par de campos comunes: Id del alumno, Ao y Programa de estudios (tabla Inscripciones) y Asignatura principal (tabla Asignaturas principales). En este ejemplo, slo son de inters los alumnos con matemticas como asignatura principal, por lo que tambin va a utilizar un criterio de campo para limitar los resultados de la consulta.1. Abra la base de datos en la que guard las tablas de ejemplo.2. En el grupoOtrosde la fichaCrear, haga clic enDiseo de consulta.3. En el cuadro de dilogoMostrar tabla, haga doble clic en la tabla que contiene los registros que desee mostrar;en este ejemplo, la tablaInscripciones. A continuacin, haga doble clic en la tabla con la que la va a comparar;en este ejemplo, la tablaAsignaturas principales.4. Cierre el cuadro de dilogoMostrar tabla.5. Arrastre el campoId del alumnode la tablaInscripcioneshasta el campoId del alumnode la tablaAsignaturas principales. Aparece una lnea entre las dos tablas en la cuadrcula de diseo; dicha lnea indica que se ha creado una combinacin. Haga doble clic en la lnea para abrir el cuadro de dilogoPropiedades de la combinacin.6. Revise las tres opciones del cuadro de dilogoPropiedades de la combinacin. De forma predeterminada, la opcin 1 est seleccionada. En algunos casos, hay que ajustar las propiedades de combinacin para incluir filas adicionales de una tabla. Dado que intenta buscar slo datos coincidentes, deje la combinacin configurada en la opcin 1. Cierre el cuadro de dilogoPropiedades de la combinacinhaciendo clic enCancelar.7. Debe crear otras dos combinaciones. Para ello, arrastre el campoAode la tablaInscripcioneshasta el campoAode la tablaAsignaturas principalesy, a continuacin, arrastre el campoPrograma de estudiosde la tablaInscripcioneshasta el campoAsignatura principalde la tablaAsignaturas principales.8. En la tablaInscripciones, haga doble clic en el asterisco (*) para agregar todos los campos de la tabla a la cuadrcula de diseo de la consulta.NOTASi utiliza el asterisco para agregar todos los campos, aparece slo una columna en la cuadrcula de diseo. Esa columna tiene el nombre de la tabla, seguido de un punto (.) y un asterisco (*). En este ejemplo, la columna se denominaInscripciones.*.9. En la tablaAsignaturas principales, haga doble clic en el campoAsignatura principalpara agregarlo a la cuadrcula.10. Desactive la casilla de verificacin en la filaMostrarde la columnaAsignatura principalen la cuadrcula de diseo de la consulta.11. En la filaCriteriosde la columnaAsignatura principal, escribaMatemticas.12. En el grupoResultadosde la fichaDiseo, haga clic enEjecutar.La consulta se ejecuta y, a continuacin, muestra slo las notas de matemticas de los alumnos que tengan matemticas como asignatura principal.Volver al principioComparar dos tablas utilizando un campo como criterioEn ocasiones, puede que desee comparar tablas que tienen campos con datos coincidentes pero con tipos de datos distintos. Por ejemplo, un campo de una tabla puede tener el tipo de datos Nmero y usted desea comparar ese campo con un campo de otra tabla que tiene el tipo de datos Texto. Se pueden generar campos que contienen datos similares pero tienen diferentes tipos de datos cuando se almacenan los nmeros como texto, ya sea por diseo o por otros motivos, como la importacin de datos desde otro programa. Dado que no se pueden crear combinaciones entre campos con distintos tipos de datos, deber utilizar otro mtodo para comparar los campos. Se pueden comparar dos campos con diferentes tipos de datos utilizando uno de los campos como criterio del otro.Supongamos que es un investigador institucional en una universidad y desea comprobar cmo los recientes cambios curriculares en el departamento de matemticas han afectado a las notas de los alumnos. Le interesan en concreto las notas de los alumnos que tienen matemticas como asignatura principal. Ya tiene una tabla denominada Asignaturas principales y otra tabla denominada Inscripciones. Los datos referentes a las notas se almacenan en la tabla Inscripciones y los datos referentes a las asignaturas principales de los alumnos se almacenan en la tabla Asignaturas principales. Para ver cmo han cambiado las notas de los alumnos con matemticas como asignatura principal, deber examinar los registros de la tabla de inscripciones que tengan registros correspondientes en la tabla de asignaturas principales. Sin embargo, uno de los campos que desea utilizar para comparar las tablas tiene un tipo de datos distinto.Para comparar dos tablas utilizando un campo como criterio, cree una consulta de seleccin que incluya ambas tablas. Incluya los campos que desee mostrar e incluya asimismo el campo que corresponda al campo que desee utilizar como criterio. A continuacin, cree un criterio para comparar las tablas. Puede crear tantos criterios como desee para comparar los campos.Para ilustrar este mtodo, va a utilizar lastablas de ejemplo de la seccin anterior, pero va a cambiar de Nmero a Texto el tipo de datos del campo Id del alumno de la tabla de ejemplo Asignaturas principales. Dado que no se puede crear una combinacin entre dos campos con distintos tipos de datos, deber comparar los dos campos Id del alumno utilizando uno de ellos como criterio del otro.Cambiar el tipo de datos del campo Id del alumno de Asignaturas principales1. Abra la base de datos en la que guard las tablas de ejemplo.2. En elPanel de exploracin, haga clic con el botn secundario delmouse(ratn) en la tabla Asignaturas principales y, a continuacin, haga clic enVista Diseoen el men contextual.La tabla Asignaturas principales se abre en la vista Diseo.3. En la columnaTipo de datos, cambie el valor paraId del alumnodeNmeroaTexto.4. Cierre la tabla Asignaturas principales. Cuando se le pregunte si desea guardar los cambios, haga clic enS.Comparar las tablas de ejemplo y buscar registros coincidentes mediante un criterio de campoEn el procedimiento siguiente se muestra cmo comparar los dos campos Id del alumno utilizando el campo de la tabla Inscripciones como criterio para el campo de la tabla Asignaturas principales. Mediante la palabra claveLIKE, puede comparar los campos aunque tengan tipos de datos diferentes.1. En el grupoOtrosde la fichaCrear, haga clic enDiseo de consulta.2. En el cuadro de dilogoMostrar tabla, haga doble clic enInscripcionesy, a continuacin, haga doble clic enAsignaturas principales.3. Cierre el cuadro de dilogoMostrar tabla.4. Arrastre el campoAode la tablaInscripcioneshasta el campoAode la tablaAsignaturas principalesy, a continuacin, arrastre el campoPrograma de estudiosde la tablaInscripcioneshasta el campoAsignatura principalde la tablaAsignaturas principales.Dado que estos campos tienen los mismos tipos de datos, se pueden comparar mediante combinaciones. Las combinaciones son el mtodo preferido para comparar campos que tienen el mismo tipo de datos.5. Haga doble clic en el asterisco (*) de la tablaInscripcionespara agregar todos los campos de esa tabla a la cuadrcula de diseo de la consulta.NOTASi utiliza el asterisco para agregar todos los campos, aparece slo una columna en la cuadrcula de diseo. Esa columna tiene el nombre de la tabla, seguido de un punto (.) y un asterisco (*). En este ejemplo, la columna se denominaInscripciones.*.6. En la tablaAsignaturas principales, haga doble clic en el campoId del alumnopara agregarlo a la cuadrcula.7. Desactive la casilla de verificacin en la filaMostrarde la columnaId del alumnoen la cuadrcula de diseo. En la filaCriteriosde la columnaId del alumno, escribaLike [Inscripciones].[Id del alumno].8. En la tablaAsignaturas principales, haga doble clic en el campoAsignatura principalpara agregarlo a la cuadrcula.9. Desactive la casilla de verificacin en la filaMostrarde la columnaAsignatura principalen la cuadrcula de diseo. En la filaCriterios, escribaMatemticas.10. En el grupoResultadosde la fichaDiseo, haga clic enEjecutar.La consulta se ejecuta y, a continuacin, muestra slo las notas de matemticas de los alumnos que tengan matemticas como asignatura principal.