Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Claves Sinteticas

Hola,

Estoy generando mi modelo de datos y se me crean muchas tablas con claves sintéticas.

El problema es que casi todas las tablas de mi modelo contienen 3 campos iguales, que son los que voy a usar para filtrar en casi todas las vistas, y por estos principalmente se me generan varias claves .

Mi intención era generar una "Link Table", es decir crear manualmente una tabla que me almacenara estos campos comunes para que todos se relacionaran con esa tabla en lugar de distintas claves.

¿A alguien se le ocurre como hacerlo? ¿ o alguna indicación diferente?

He leído lo de concatenar campos para crear claves pero no es exactamente lo que busco.

Un saludo,

Maria

1 Solution

Accepted Solutions
Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola María

Tabla1:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

          ...

Tabla2:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

          ...

Tabla3:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key



LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table1


LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table2


LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table3


DROP FIELD campo1, campo2, campo3 from Table1;

DROP FIELD campo1, campo2, campo3 from Table2;

DROP FIELD campo1, campo2, campo3 from Table3;



Espero haberte ayudado,

Joaquín

View solution in original post

26 Replies
Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola

jvitantonio
Luminary Alumni
Luminary Alumni

Aloha

Anonymous
Not applicable
Author

Ups, lo publiqué antes de tiempo... ya lo he modificado ...

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola María:

Empieza por aquí https://community.qlik.com/blogs/qlikviewdesignblog/2013/04/16/synthetic-keys#comment-33794

Una posibilidad es DROP FIELDS después de crear la link table,

Por último, copia y pega una parte del script y será más fácil ayudarte

Saludos

Joaquín

jvitantonio
Luminary Alumni
Luminary Alumni

Puede usar Qualify *; para que se agreguen los nombres de las tablas antes ddel nombre de campo.

Otra cosa seria concatenar los campos para formar una clave unica:

Load

Campo1 & Campo2 & Campo3 FROM... ;

y lo mismo haces en tus otras tablas.

La unica forma de evitar claves sinteticas es quitando o renombrando campos en comun. Puedes usar las funciones AS o Rename field. Ej:

Load

Campo1 AS miCampo FROM miTabla;

O

Load Campo1 from miTabla;

Rename field Campo1 to miCampo;

Juan

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola María

Tabla1:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

          ...

Tabla2:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

          ...

Tabla3:

LOAD campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key



LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table1


LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table2


LinkTable:

LOAD DISTINCT campo1, campo2, campo3,

          Autonumber(campo1 & campo2 & campo3) as key

Resident Table3


DROP FIELD campo1, campo2, campo3 from Table1;

DROP FIELD campo1, campo2, campo3 from Table2;

DROP FIELD campo1, campo2, campo3 from Table3;



Espero haberte ayudado,

Joaquín

Anonymous
Not applicable
Author

Gracias a todos por los comentarios.

Voy a verlo y os voy contando!!

Maria

Anonymous
Not applicable
Author

Retomo la conversación algo tarde pero conforme he podido ir probando...

Lo que me comentas lo he probado cuando tengo una clave sintética y genial, la verdad es que ademas de que creo q es util me "aclara" bastante el modelo de datos.

El problema me surge ahora, ya que en mi modelo no tengo una sola clave sintética sino 10...

La primera que se me genera es con los campos Mes, y Filial, y las demás se generan a partir de esa pero añadiendo campos.  Por ejemplo con "Mes, Filial, Centro"  o "Mes, Filial, Area" o "Mes, Filial, Area, Centro" y asi sucesivamente.

¿Como lo harías en este caso??

Saludos,

Maria