Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
remy_grange
Contributor II
Contributor II

Creation table synthétique connexion sql serveur

Bonjour,

J'ai crée une connexion avec un ms sql serveur. Via un script basique.

Si je charge les 3 premières tables qlik ne crée pas de table synthétique.

Dans les 4 tables j'ai un champ commun DEVICE_ID.

LOAD

          *;

SQL SELECT

          *

FROM CONTAINER;

LOAD

          *;

SQL SELECT

          *

FROM ADDRESS;

LOAD

          *;

SQL SELECT

          *

FROM DEVICE_VALUES;

Si je charge la dernière table qlik crée une table synthétique.

J'ai des champs en commun avec la dernière table et la première. Est-ce que c'est l'explication ?

-----------------------------------------------

LOAD

          *;

SQL SELECT

          *

FROM EMPTYINGS;

Comment faire pour éviter la création par qkv d'une table synthétique.

Merci par avance.

1 Solution

Accepted Solutions
kevinchevrier
Partner - Creator III
Partner - Creator III

Bonjour Rémy,

Oui tout a fait. Si tu as plusieurs champs en commun cela créé une clé synthétique. Il faut éviter pour des raisons de performance.

3 solutions selon moi :

- une jointure avec un left join

- création d'une clé unique pour relier les 2 tables avec tes champs qui sont en clé synthétique. Exemple : si tu as le CHAMP_1 et le CHAMP_2 qui sont en clé synthétique entre tes 2 tables ALORS tu fais CHAMP_1  & CHAMP_2 as Clé_liaison_entre_tes_2_tables. Bien sûr tu ne recharges pas CHAMP_1 et CHAMP_2 dans ta deuxième table. Sinon tu vas recréer la clé synthétique.


- Concatenate



N'hésite pas à me dire si je suis pas clair.


Plus de précision ici :

https://community.qlik.com/blogs/qlikviewdesignblog/2013/04/16/synthetic-keys

Concatenate vs Link Table

Kevin

View solution in original post

3 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

Bonjour Rémy,

Oui tout a fait. Si tu as plusieurs champs en commun cela créé une clé synthétique. Il faut éviter pour des raisons de performance.

3 solutions selon moi :

- une jointure avec un left join

- création d'une clé unique pour relier les 2 tables avec tes champs qui sont en clé synthétique. Exemple : si tu as le CHAMP_1 et le CHAMP_2 qui sont en clé synthétique entre tes 2 tables ALORS tu fais CHAMP_1  & CHAMP_2 as Clé_liaison_entre_tes_2_tables. Bien sûr tu ne recharges pas CHAMP_1 et CHAMP_2 dans ta deuxième table. Sinon tu vas recréer la clé synthétique.


- Concatenate



N'hésite pas à me dire si je suis pas clair.


Plus de précision ici :

https://community.qlik.com/blogs/qlikviewdesignblog/2013/04/16/synthetic-keys

Concatenate vs Link Table

Kevin

kevinchevrier
Partner - Creator III
Partner - Creator III

remy_grange
Contributor II
Contributor II
Author

Salut kevin,

Merci de ton aide.

Alors en fait tout simplement j'ai évité les champs en communs dans mon select.

J'ai remarqué un truc, je me trompe peut-être mais j'ai vu que quand qkv crée un script en auto.

Les champs en commun de ne sont pas inscrit entre " ".

Dans mon cas le champ en commun VOLUME était écrit sans les guillemets, contrairement aux autres.

Mais j'ai pas encore essayé les autres solutions.

Je vais lire la doc qui correspond.

Merci à toi.