10 Replies Latest reply: Aug 26, 2015 4:33 PM by Christophe JOUVE RSS

    Fonction peek ?

    Romaric CANTIN

      Bonjour tout le monde !

       

      Je bloque sur une requête concernant les arrêts de travail :

       

      Voici a quoi ressemble le résultat de ma requête,

       

      ABSDEF           ABSDRET      ABSNBJ

      05/02/2015        06/02/2015            1

      15/06/2015        02/07/2015           17

      02/07/2015        12/07/2015           10

      12/07/2015        23/07/2015           11

      23/07/2015        15/09/2015           54

      15/09/2015        21/09/2015            6

       

      Pour un agent cela me donne ce résultat, je souhaiterai identifier le nombre d'arrêt de travail par agents sur une années.

       

      Mon soucis pour le moment c'est que la, qlikview me ressort une ligne même pour les prolongations d'arrêt qui font pour moi partie de l'arrêt initial.

       

      Il faudrait que j'arrive a regrouper les prolongations avec l'arrêt initial.

       

      Dans l'exemple que je vous ai donné ci dessus on peut voir qu'il y a un arrêt en février

      Puis il y a un deuxième arrêt a partir du 15/06/2015 jusqu'au 02/07/2015, cet arrêt ce prolonge jusqu'au 21/09/2015.

       

      Je voudrai donc obtenir que deux lignes et je maitrise pas trop la fonction peek !

       

      Je voudrai ensuite avoir un champ arrêt initial et un autre prolongation comment est ce que je peux procéder ?

       

      Merci par avance pour votre aide

       

      Bien cordialement

       

      Romaric CANTIN

        • Re: Fonction peek ?
          Christophe JOUVE

          Bonjour,

          En supposant que les données sont triées par AGENT et DATES, voici un exemple de code résolvant votre problème. Il permet de positionner un flag permettant de savoir si l’enregistrement correspond à une prolongation ou un état initial.

          J’ai créé un champ AGENT en plus et un champ PROLONGATION qui contient le flag. 1=PROLONGATION, 0 = ARRET INITIAL.

           

          arrets:

          load *, if (previous(ABSDRET)=ABSDEF AND previous(AGENT)=AGENT,1,0) as PROLONGATION;

          load * inline

          [AGENT,ABSDEF,ABSDRET,ABSNBJ

          A1,05/02/2015,06/02/2015,1

          A2,15/06/2015,02/07/2015,17

          A2,02/07/2015,12/07/2015,10

          A2,12/07/2015,23/07/2015,11

          A2,23/07/2015,15/09/2015,54

          A2,15/09/2015,21/09/2015,6

          A3,01/01/2015,10/01/2015,9

          ];

           

          Au final, on obtient cela :

          AGENT

           

          ABSDEF

           

          ABSDRET

           

          ABSNBJ

           

          PROLONGATION

           

          A1

           

          05/02/2015

           

          06/02/2015

           

          1

           

          0

           

          A2

           

          15/06/2015

           

          02/07/2015

           

          17

           

          0

           

          A2

           

          02/07/2015

           

          12/07/2015

           

          10

           

          1

           

          A2

           

          12/07/2015

           

          23/07/2015

           

          11

           

          1

           

          A2

           

          23/07/2015

           

          15/09/2015

           

          54

           

          1

           

          A2

           

          15/09/2015

           

          21/09/2015

           

          6

           

          1

           

          A3

           

          01/01/2015

           

          10/01/2015

           

          9

           

          0

           

           

          Ensuite, baser vos calculs sur la valeur du flag PROLONGATION.

           

          Cdt

           

          Christophe Jouve

          Principal Solution Architect

           

          Direct: +33 1 55 62 65 54

          Mobile: +33 6 76 24 22 47

          Email:  Christophe.Jouve@qlik.com

           

          Qlik

          France Headquarters Office,93 avenue Charles de Gaulle

          92200 Neuilly sur Seine

           

          qlik.com<http://www.qlik.com/>

           

           

          Téléchargez gratuitement QlikView

           

          http://www.qlikview.com/fr/explore/experience/free-download

          <http://www.qlik.com/us/explore/products/sense?SourceID1=Corporate_Email_Signature>

           

          The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

          • Re: Fonction peek ?
            Christophe JOUVE

            Oups,

            Petit pb de rendu de la table. En voici l’image.

            Cdt

             

             

             

            Christophe Jouve

            Principal Solution Architect

             

            Direct: +33 1 55 62 65 54

            Mobile: +33 6 76 24 22 47

            Email:  Christophe.Jouve@qlik.com

             

            Qlik

            France Headquarters Office,93 avenue Charles de Gaulle

            92200 Neuilly sur Seine

             

            qlik.com<http://www.qlik.com/>

             

             

            Téléchargez gratuitement QlikView

             

            http://www.qlikview.com/fr/explore/experience/free-download

            <http://www.qlik.com/us/explore/products/sense?SourceID1=Corporate_Email_Signature>

             

            The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

              • Re: Fonction peek ?
                Romaric CANTIN

                Créer un champs AGENT est-il nécessaire moi j'ai déjà les détails agents dans ma table.

                 

                NOM pour le nom de l'agent

                Prénom pour le prénom de l'agent notamment.

                 

                Merci pour votre aide

                 

                Cordialement

                 

                Romaric

                  • Re: Fonction peek ?
                    Romaric CANTIN

                    arrets:
                    load *, if (previous(ABSDRET)=ABSDEF,1,0) as PROLONGATION;
                    //AND previous(NOM)=NOM,1,0) as PROLONGATION;
                    load * inline
                    [ABSDEF,ABSDRET,ABSNBJ
                    05/02/2015,06/02/2015,1
                    15/06/2015,02/07/2015,17
                    02/07/2015,12/07/2015,10
                    12/07/2015,23/07/2015,11
                    23/07/2015,15/09/2015,54
                    15/09/2015,21/09/2015,6
                    01/01/2015,10/01/2015,9
                    ];

                     

                    Avec ceci j'ai le résultat souhaité.

                     

                    Un grand très grand merci à toi Christophe

                     

                    Bonne fin de journée

                     

                    Bien cordialement

                     

                    Romaric

                    • Re: Fonction peek ?
                      Christophe JOUVE

                      Non, j’en ai créé un pour les besoins de l’exemple.

                      Cdt

                       

                       

                      Christophe Jouve

                      Principal Solution Architect

                       

                      Direct: +33 1 55 62 65 54

                      Mobile: +33 6 76 24 22 47

                      Email:  Christophe.Jouve@qlik.com

                       

                      Qlik

                      France Headquarters Office,93 avenue Charles de Gaulle

                      92200 Neuilly sur Seine

                       

                      qlik.com<http://www.qlik.com/>

                       

                       

                      Téléchargez gratuitement QlikView

                       

                      http://www.qlikview.com/fr/explore/experience/free-download

                      <http://www.qlik.com/us/explore/products/sense?SourceID1=Corporate_Email_Signature>

                       

                      The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

                        • Re: Fonction peek ?
                          Romaric CANTIN

                          Une dernière petite question cependant,

                           

                          Comment est ce que je dois faire pour ne pas ressaisir à chaque fois dans mon script les dates.

                           

                          Je voudrai juste sélectionner mon nom agent, et la période que je retrouve dans ma table pour que à partir de la qlik view me sorte les arrêts avec les dates automatiquement.

                           

                          Je ne veux pas saisir les dates d'arrêt agent par agent dans le script.

                           

                          Merci !

                           

                          Cordialement

                           

                          Romaric

                            • Re: Fonction peek ?
                              Christophe JOUVE

                              Re,

                              La sélection des agents et dates associées se fait automatiquement dans l’interface par associativité.

                              Il vous suffit de créer des listes sur les noms des agents et le cas échéant, une période d’analyse (année, mois par exemple).

                              Vous n’avez pas à gérer cela dans le script.

                              Le script est dédié uniquement au chargement initial des données dans QlikView avec certains calculs intermédiaires si besoin, comme celui évoqué dans notre échange. Par défaut, vous allez charger toutes les données pour tous les agents (d’où l’intérêt de la colonne NOM de l’agent).

                              Ou alors je n’ai pas saisi votre question…

                              Cdt

                               

                               

                              Christophe Jouve

                              Principal Solution Architect

                               

                              Direct: +33 1 55 62 65 54

                              Mobile: +33 6 76 24 22 47

                              Email:  Christophe.Jouve@qlik.com

                               

                              Qlik

                              France Headquarters Office,93 avenue Charles de Gaulle

                              92200 Neuilly sur Seine

                               

                              qlik.com<http://www.qlik.com/>

                               

                               

                              Téléchargez gratuitement QlikView

                               

                              http://www.qlikview.com/fr/explore/experience/free-download

                              <http://www.qlik.com/us/explore/products/sense?SourceID1=Corporate_Email_Signature>

                               

                              The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

                              • Re: Fonction peek ?
                                Xavier Retaillaud

                                Bonjour,

                                 

                                Si j'ai bien compris :

                                Le LOAD * INLINE est juste là pour donner un jeu de donnée à manipuler pour l'exemple. Vous devez le remplacer par un LOAD et/ou un SQL SELECT qui travaille sur vos tables.

                                 

                                Cordialement,

                                Xavier.