Como filtrar tabla con otra tabla

Tengo dos tablas con un campo "Referencia" idéntico.

Una de ellas tiene 2000 registros y la otra 1500.

Quisiera hacer un filtro a la tabla de los 2000 registros con los 1500 que contiene la otra.

¿Cómo puedo hacerlo?

He probado con la cláusula IN pero son demasiados datos.

Respuesta

Pruebe con esta sentencia:

SELECT * FROM Tabla_A

WHERE Referencia IN (

SELECT Referencia FROM Tabla_B)

Gracias por la respuesta, pero tengo un problema.

En esta sentencia:

SELECT * FROM Tabla_A WHERE Referencia IN (SELECT Referencia2 FROM Tabla_B)

No encuentra el campo Referencia2

Yo no he escrito Referencia2, sino Referencia.

SELECT * FROM Tabla_A

WHERE Referencia IN (

SELECT Referencia FROM Tabla_B)

Perdón, me equivoqué.

Quería decir Referencia1 para Tabla_A y Referencia2 para Tabla_B

¿Pero por qué "Referencia1" y "Referencia2"? El campo no se llama "Referencia", ¿sin más?

En su pregunta inicial decía usted:

"Tengo dos tablas con un campo "Referencia" idéntico."

Si tiene dos tablas y en las dos hay un campo llamado Referencia, la sentencia que debe usar es la que le he indicado.

2 respuestas más de otros expertos

Respuesta
1

La respuesta que te dan es correctísima. Sólo faltaría definir que quieres decir con filtrar. ¿Qué te muestre los coincidentes? ¿Qué te muestre los que están en una pero no en otra?

En el primer caso usa la instrucción de Poliplos, para el segundo caso, si tengo el formulario Clientes, basado en la tabla del mismo nombre

Puedes ver que hay 91. Si pulso el botón

Esos que aparecen, no están en la tabla Otra. La instrucción del botón es

Private Sub Comando5_Click()
Me.RecordSource = "select nombrecliente,pais from clientes WHERE nombrecliente NOT IN (SELECT nombrecliente FROM otra)"
End Sub
Respuesta

Las respuestas son acertadas, si no sabe SQL utilice el asistente de Access y copie el código SQL.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas