Unir dos columnas en una con distintos datos. SQL ACCESS

Estoy atascada hace unos días en un problema que no consigo resolver.

Tengo unas tablas de donde saco la tabla resultado que tienen la siguiente estructura:

TABLA_1:

TABLA_2

La expresión que uso es la siguiente:

sqls = "SELECT a.ID, a.DATO_T1 AS DATO1, IIF((a.ID = b.ID AND a.DATO_T1 = b.DATO_T), b.DATO_S,) AS DATO2, a.DATO_T2 AS DATO3, IIF((a.ID = b.ID AND a.DATO_T2 = b.DATO_T), b.DATO_S,) AS DATO4 INTO RESULTADO FROM TABLA_1 a LEFT JOIN TABLA_2 b ON a.ID = b.ID AND (a.DATO_T1 = b.DATO_T OR a.DATO_T2 = b.DATO_T)"

Mi tabla resultado de la consulta me queda de la siguiente forma:

RESULTADO:

Como se ve, el ID se repite para cada dato, ya que siempre una de las filas con el mismo ID contiene un NULL.

Mi objetivo es juntar esos datos a partir de la tabla resultado anterior o directamente con otra consulta SQL en mi macro para que la tabla me quede de la siguiente forma:

Cualquier ayuda se agradece.

2 Respuestas

Respuesta
1

El modelo relacional está orientado a mostrar los datos variables como registros no como columnas. Se puede hacer lo que tu quieres pero es muy elaborado.

¿Te pregunto que pasa si para un id hay más de 2 datos? :  3 , 4 , 1000, 1000000?

Respuesta
2

Puedes hacer una cosa, en previsión de que haya mas registros repetidos.

Si tengo una tabla como la tuya

Y quiero obtener el resultado

El diseño de la consulta es

Para el campo DatosB es lo mismo que DatosA poniendo Datos4

Por si te sirve

¡Gracias! 

Pude solucionarlo con unas cuantas expresiones SQL enlazadas, pero la forma que propones parece mucho más estable.

Probaré y si tengo dudas te vuelvo a consultar. 

¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas