7 Replies Latest reply: Aug 14, 2014 10:51 AM by DE RUYVER CHRISTOPHE RSS

    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

        • Re: Problème $syn

          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

          • Re: Problème $syn

            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

              • Re: Problème $syn

                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

              • Re: Problème $syn

                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

                • Re: Problème $syn

                  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