Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problème $syn

Bonjour à tous,

Notre département HR veut utiliser QV pour son reporting. En effet, les employés remplissent des timesheet et j'ai accès à la base SQL pour reprendre toutes ces infos.

Par contre, j'ai un souci de $syn et je ne sais pas comment le résoudre.

Je vous joins 2 captures écran pour aider.

Un tout grand merci.

Christophe

Table QV.jpgScript QV.jpg

7 Replies
Not applicable
Author

Bonjour Christophe,

Il s'agit de clés synthétiques générées automatiquement par Qlikview.

Cela lui sert pour implémenter son modèle associatif.

Il faut que tu travailles ton modèle de données.

Pour avancer, tu peux en attendant afin d'avoir un apercu de ce que tu veux faire actuellement entourer toutes tes requetes SQL par l'instruction QUALIFY * ;  au début et UNQUALIFY *; à la fin.

Tu verras que l'ensemble de tes champs seront préfixés ce qui aura comme conséquence de créer des tables ilots.

Il est à noter que Qlikview génére ces clés syntétiques si jamais il y a plus d'un champs à associer dans une table.

Dans la table special leave, il y a 3 clés alors qu'il en faudrait une.

Pour pallier ce problème, tu peux soit concatener toutes les clés d'une table pour en construire une nouvelle soit en utilisant la generation auto d'id.

Cdt,

Benjamin

Not applicable
Author

Bonjour Benjamin,

Je t'avoue que je ne suis pas programmeur mais contrôleur de gestion 😞

Je comprends plus ou moins ce que tu m'as dit mais mon souci, c'est que je ne vois pas les champs de mes tables dans mon script lors de l'import des tables SQL. Je ne comprends donc pas comment concaténer.

Qu'entends-tu par "génération auto d'id"?

D'avance merci pour ton aide.

Christophe

Not applicable
Author

Bonjour Christophe,

Si les métiers se mettent à faire de l'informatique!

A ton niveau, il n'y a aucun problème.

Je m'explique. La présence des $syn a une influence quant à la performance de l'application. Uniquement ! On est vraiment dans des problématiques IT.

En revanche, ton modèle de données est correct et doit etre exploitable.

Tu devrais pouvoir créer des graphiques dans cette application QlikView.

Cdt,

Benjamin

Not applicable
Author

Salut Christophe,

Le post de Benjamin est complet sur la question mais je vais essayer de faire mieux

Tes requêtes que tu nous présentes charge l'ensemble des champs et des données dans des tables Qlikview. Le problème c'est que tes tables sources (timesheet, consultant,etc..) ont des noms de champ similaires notamment id ou country.

Ce que je te propose :

  1. Modifier tes requêtes, en indiquant les champs que tu souhaites. (partie SQL)
  2. Renommer les noms de tes champs avec des suffixes ou préfixes pour préciser le nom de la table

Ci-joint un exemple :

LOAD id           as [ID_Consultant], last_m        as [Cons_Last_m], etc . ;
SQL
SELECT id, last_m, etc...
FROM expat.consultant;

Tu n'aura plus de problème avec des tables synthétiques.

Attention : il faut quand même garder certains champs avec des noms similaires pour joindre tes tables pour que le moteur de Qlikview puisse comprendre qu'une ligne de telle table correspond à une ligne de l'autre table.  

Ce qu'expliquait Benjamin c'est de créer des clés "virtuelles" et non physique pour joindre certaines tables. Tu as le choix entre deux types de clés :

  • Autonumberhash128()
  • Autonumber()

Et bien sûr un exemple :  AutoNumberHash128(Champs1, Champs2, ChampsN,..)      as      Table_Key,

 

Tu peux le faire sur ton id et un autre champs pour rendre ta clé unique. Il faudra aussi la déclarer dans les autres tables que tu souhaites joindre et peut-être l'adapter.

 

Voilà. Have Fun

Not applicable
Author

Mille mercis pour ce complément d'information.

Juste une petite précision, comme je peux arriver à avoir un LOAD lors de l'importation de mes tables SQL dans QV. En effet, je vais les chercher en me connectant à MySQL et j'ai ensuite SQL* avec from et le nom de la table.

Pour l'utilisation des clés, c'est dans le script que je peux les utiliser?

Comme dit Benjamin, c'est vraiment bizarre que le business s'occupe de l'IT en effet 🙂 Mais c'est comme ça dans ma société. On est multi disciplinaire.

Christophe

Not applicable
Author

@Pour l'utilisation des clés, c'est dans le script que je peux les utiliser?

Oui tout à fait.

Ce forum regorge d'informations dessus.

Ps : N'oublie pas de clôturer la discussion une fois que tu as ta réponse

Not applicable
Author

Comme puis-je "clôturer" une discussion?

Bàt,

Christophe