Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
yaguilej
Contributor II
Contributor II

Evitar clave sintética

Hola,

Tengo varias tablas que se relacionan por un campo común "Solicitud", y en ellas tengo otro campo "Referencia", este campo no siempre tiene dato. Si los concateno, no me funciona bien, ya que necesito los dos campos por separado y necesito que se relacionen por los dos, pero claro se crea una clave sintética. Como puedo hacer, para mantener los dos campos y que esté bien hecho. Gracias

Labels (1)
1 Solution

Accepted Solutions
ignacio_pena
Contributor III
Contributor III

Hola,

Entonces creo que lo mejor sería que intentarás hacer lo siguiente:

1º Crear una tabla central, que sería la carga de los campos Solicitud y Referencia de todas las tablas (a partir de Resident), en la carga de esa tabla central además de los 2 campos, crearía también la CLAVE concatenada, pero esta vez con un nombre diferente por cada tabla. Es decir, si tu modelo tuviera 3 tablas con los campos Solicitud y Referencia, en la tabla central deberías de tener los siguientes campos: CLAVE_TABLA1, CLAVE_TABLA2, CLAVE_TABLA3, SOLICITUD y REFERENCIA. Es decir, la tabla CENTRAL tendrá todas las solicitudes y referencias de todas las tablas.

2º En la tablas 1, 2 y 3 lo que deberías de hacer es crear las claves correspondientes a cada una de ellas (y que se relacionarán la tabla CENTRAL). Luego elimina o no cargues los campos Solicitud y Referencia en estas tablas.  Ya que en tu modelo ahora deberás de tirar de las que están en la tabla CENTRAL. El resto de valores propios de cada tabla si estarán donde correspondan.

3º De esta manera cada TABLA tendrá una clave única que se corresponderá con la TABLA CENTRAL, donde estarán tus dimensiones Solicitud y Referencia. Y las medidas las tomaras de cada tabla según corresponda.

Creo que con este ajuste en el modelo debería de poder funcionar todo como indicas.

Un saludo,

 

 

                                  

                             

View solution in original post

4 Replies
ignacio_pena
Contributor III
Contributor III

Hola,

La manera de hacerlo es la que indicabas de concatenar los campos, si necesitas los campos por separado yo haría lo siguiente:

1º Crear un campo nuevo (que sera la clave por la que relacionar las tablas). Esta clave debería de ser los 2 campos concatenados (Solicitud y Referencia). Cuando el campo referencia sea nulo, le pondría un valor "comodín" (por ejemplo un cero o XXXX).

2º Tendrías que crear la misma clave en todas las tablas que se relacionen por los 2 campos.

3º Renombrar Solicitud y Referencia, para que la unión sólo se realice por el campo Clave que has creado. 

De esta manera conservarás los 2 campos por separado y no tendrás sintéticas.

Espero que te sirva de ayuda.

Un saludo,

yaguilej
Contributor II
Contributor II
Author

Hola Ignacio, muchas gracias por tu respuesta, la solución que me das ya la probé y efectivamente funciona, el problema está que necesito hacer una tabla en la que los campos Solicitud y Referencia son las dimensiones y después las medidas son otros valores que saco de las diferentes tablas, por ejemplo, en una tabla está importe adjudicado, en otra consumido, etc...
ignacio_pena
Contributor III
Contributor III

Hola,

Entonces creo que lo mejor sería que intentarás hacer lo siguiente:

1º Crear una tabla central, que sería la carga de los campos Solicitud y Referencia de todas las tablas (a partir de Resident), en la carga de esa tabla central además de los 2 campos, crearía también la CLAVE concatenada, pero esta vez con un nombre diferente por cada tabla. Es decir, si tu modelo tuviera 3 tablas con los campos Solicitud y Referencia, en la tabla central deberías de tener los siguientes campos: CLAVE_TABLA1, CLAVE_TABLA2, CLAVE_TABLA3, SOLICITUD y REFERENCIA. Es decir, la tabla CENTRAL tendrá todas las solicitudes y referencias de todas las tablas.

2º En la tablas 1, 2 y 3 lo que deberías de hacer es crear las claves correspondientes a cada una de ellas (y que se relacionarán la tabla CENTRAL). Luego elimina o no cargues los campos Solicitud y Referencia en estas tablas.  Ya que en tu modelo ahora deberás de tirar de las que están en la tabla CENTRAL. El resto de valores propios de cada tabla si estarán donde correspondan.

3º De esta manera cada TABLA tendrá una clave única que se corresponderá con la TABLA CENTRAL, donde estarán tus dimensiones Solicitud y Referencia. Y las medidas las tomaras de cada tabla según corresponda.

Creo que con este ajuste en el modelo debería de poder funcionar todo como indicas.

Un saludo,

 

 

                                  

                             

yaguilej
Contributor II
Contributor II
Author

Muchas gracias Ignacio, he cambiado alguna cosa, por ejemplo los nombres de Referencia y Solicitud no los he renombrado o borrado, lo que he hecho en la tabla central un Drop Field de esos campos, porque si no, no los reconocía. No obstante, sigue dándome un sintética, lo estoy revisando, creo que solucionando esto, ya funcionaría.