¿Cómo puedo identificar de qué tabla provienen los registros distintos de una consulta de unión?

Cuando no se incluye "All" la consulta sólo acumula los distintos, eso es lo que necesito. Pero además debería incluir un campo para identificar a qué tabla pertenecen. Si incluyo este campo en la consulta SELECT ya se transforma en un registro distinto

1 respuesta

Respuesta
3

Si construyo la consulta(no hace falta que los campos se llamen igual, pero es que ya tenía hechas estas tablas)

Cuando la abro, veo de que tabla son

Gracias Icue! El problema es que de esa forma en vez de mostrar solo los distintos va a mostrar todos como si fuera "ALL" ya que indefectiblemente los registros serán únicos

Chico, tú tendrás las ideas claras, pero te prometo que no he entendido nada. No sé que quiere decir " mostrar solo los distintos... serán únicos"¿Podrías extenderte un poco más?

Es cierto, perdón. Voy a tratar de ser mas claro. Tengo varias tablas con idéntica estructura. Los registros en ellas pueden ser iguales, en ese caso no quiero que se incluyan en la consulta unión. Si los registros son distintos (porque algún campo cambió o porque es un registro nuevo) necesito que se incluya en el resultado de la consulta y además quisiera en ese caso mostrar a qué tabla pertenece. Si a cada tabla le agrego un campo con el nombre ya no habrá posibilidad de que haya registros iguales entre las distintas tablas

No sé de donde has sacado lo de añadir un campo a las tablas. Yo no lo he dicho, se lo añado en el diseño de la consulta. Si tengo la tabla Aux en la que puedes ver que un registro está repetido

Tengo la tabla Otra

Puedes ver que Juan Pedro está repetido

Y construyo la consulta

Que se podría simplificar, el resultado sería

Es decir, sin repetidos, y en el campo que le he añadido veo a que tabla pertenece.

Muchas gracias de verdad por el tiempo que dedicás a responder. Mi problema es cuando se repiten en las distintas tablas. Es decir que si "pepito lopez" figura en la tabla "aux" con el mismo país y ciudad que en la tabla "otra" va a aparecer dos veces en el resultado de la consulta. Yo necesito que aparezca solo una, salvo que haya un cambio en el país o la ciudad, y en ese caso identificar la tabla de origen.

No sé como la habrás hecho, porque si tengo una tabla

Verás que Juan Carlos se repite con mismos datos así como Antonio Moreno. Tengo otra tabla

Verás que la ciudad y el país de Juan Carlos ha cambiado, que se repite Ana Trujillo y Antonio Morenoi. SAi hago la consulta, el resultado es

Como puedes ver, Juan Carlos se repite porque el país es distinto, pero de los demás no se repite ninguno, y sólo he puesto

Lo que busco es saber si Juan Carlos Perez de Alemania es de la tabla "una" o de la tabla "otra" (teniendo en cuenta que son más de 4 tablas)

Has cerrado la pregunta, por eso no me deja responderte

Veremos si ahora me deja ponerte la respuesta

A eso me refería al principio con lo de "añadir un campo". Si agrego Origen entonces Ana Trujillo o Antonio Moreno van a aparecer dos veces. 

Reconozco que las consultas no me gustan, personalmente creo que el lenguaje SQL es bastante menos versátil que VB. Supongamos que tengo una tabla Clientes

Como puedes ver, lo señalados con la flecha se repiten excepto en el pais.

Por otro lado tengo otra tabla CopiaVerás que

Verás que sus valores se repiten respecto a la tabla anterior excepto Antonio que es de otro pais. Construyo una tabla Usar con este diseño

Al ponerle como clave los tres nombres no se pueden repetir, por ejemplo, Antonio--Antonio--Mexico y Antonio--Antonio-Mexico. En cualquier lugar de cualquier formulario, añádele un botón de comando(no sería necesario, porque se puede poner en cualquier evento) y en sus propiedades-eventos-al recibir el enfoque crea un procedimiento de evento y entre Private Sub y End sub escribe

Con lo cual, cuando pulses el botón la tabla Usar te aparecerá

Como puedes ver, no se repite ninguno y te marca de que tabla viene. Luego, si quieres, en cualquier evento de cualquier control le pones

Docmd. Runsql"delete * from usar"

Y te borra los datos de la tabla Usar, quedando lista para otra ocasión.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas