Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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
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 :
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 :
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
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
@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
Comme puis-je "clôturer" une discussion?
Bàt,
Christophe