8 Replies Latest reply: Apr 16, 2018 2:26 AM by Céline L. RSS

    Isoler une date pour calculer une différence entre deux dates

    Céline L.

           Bonjour à tous,

       

       

      J'ai (encore!) besoin de vos conseils

       

      J'ai plusieurs tableaux excel que j'importe sous QV qui ont un format de ce type :

       

          

      Numéro de commandeDate de récéption commandeNom-prénomdate d'envoi CV
      123/03/2018Poire01/04/2018
      230/01/2018Pommes 02/02/2018
      230/01/2018Cerise04/02/2018
      331/01/2018Fraise07/02/2018
      123/03/2018Citron05/04/2018

       

       

      J'aimerais calculer le délai en jour entre la date de réception et la date d'envoi du tout premier CV. Par exemple sur mon tableau ce serait la ligne de  Poire, puis celles de Pommes et enfin Fraise.

       

      Je ne trouve pas comment prendre en compte seulement la date la plus ancienne dans ma colonne date d'envoi CV. J'ai pensé à un Set analysis mais je ne trouve pas....

       

       

      D'avance merci pour votre aide !

       

       

       

      Céline

        • Re: Isoler une date pour calculer une différence entre deux dates
          LAURENT CLOATRE

          Bonjour,

           

          Il faut que tu procèdes ainsi :

          - Charger le fichier dans une table temporaire.

          - Charger les données de cette table temporaire dans une seconde table en ajoutant une colonne avec le min de la date d'envoi du CV.

          - Calculer le délai et supprimer éventuellement la date d'envoi du CV la plus ancienne..

            • Re: Isoler une date pour calculer une différence entre deux dates
              Céline L.

              Bonjour Laurent,

               

               

              Donc si je comprends bien (je suis encore un peu novice....)

               

              Dans mon script je crée une table ou je charge mes données

               

              Ensuite je créer une seconde table ou  je mets une notion de minimum sur la date d'envoi du CV

               

              Et après  dans une expression je calcul le délais ou je le fais directement dans le script ?

              Je dois supprimer les tables temporaires ?

               

              (j'avoue c'est un peu flou pour moi )

                • Re: Isoler une date pour calculer une différence entre deux dates
                  Christophe Brault

                  Bonjour Céline,

                   

                  Pour compléter la réponse de Laurent et te donner un exemple de script dans ton cas :

                   

                  // Chargement de la table d'origine (à modifier dans ton cas)

                  CSV:

                  LOAD * Inline [

                  Numéro de Commande, Date de réception commande, Nom Prénom,Date d'envoi CV

                  1, 23/03/2018, Poire, 01/04/2018

                  2, 30/01/2018, Pommes, 02/02/2018

                  2, 30/01/2018, Cerise, 04/02/2018

                  3, 31/01/2018, Fraise, 07/02/2018

                  1, 23/03/2018, Citron, 05/04/2018

                  ];


                  // Réduction de la table au niveau de la commande en gardant seulement la date d'envoi CV la plus basse (GROUP BY)

                  TEMP:

                  LOAD "Numéro de Commande",

                  "Date de réception commande",

                       Min("Date d'envoi CV") as "Date d'envoi CV"

                  Resident CSV

                  Group By "Numéro de Commande",

                  "Date de réception commande";


                  // Calcul du délai entre les deux dates

                  FINAL:

                  LOAD "Numéro de Commande",

                  "Date de réception commande",

                       "Date d'envoi CV",

                       "Date d'envoi CV" - "Date de réception commande" as Délai

                  Resident TEMP;

                  // On ramène dans la table le Nom Prénom grâce à deux champs clés : Numéro de Commande et Date d'envoi CV

                  left join(FINAL)

                  LOAD "Numéro de Commande",

                  "Date d'envoi CV",

                       "Nom Prénom"

                  Resident CSV;

                  Drop tables CSV, TEMP;    // Suppression des tables inutiles



                  Le résultat :


                  Capture.PNG

                    • Re: Isoler une date pour calculer une différence entre deux dates
                      Céline L.

                      Bonjour Christophe ,

                       

                      J'y suis presque !

                      Lorsque je recharge mes données, il me note cette anomalie (alors que j'ai l'impression qu'il me fait bien le calcul car j'ai des données qui s'affichent et qui ont l'air à priori correcte):

                       

                      image001 (2).png

                       

                       

                       

                      Voici mon script :

                       

                      //Création table CSV
                      CSV :
                      LOAD [Référence commande],
                      [Nature de la commande],
                      [Région],
                      Agence,
                      [Date de la communication de la demande],
                      [Nom Prénom],
                      [Date envoi
                      (auprès du client)]
                      ,


                      FROM
                      [xxxx.xlsx]
                      (
                      ooxml, embedded labels, table is [3-Profils transmis ]);

                      // Réduction de la table au niveau de la commande en gardant seulement la date d'envoi CV la plus basse (GROUP BY)
                      TEMP:
                      LOAD  [Référence commande],
                      [Région],
                      [Date de la communication de la demande],
                      Min([[Date envoi
                      (auprès du client)]
                      ) as [Date d'envoi]
                      Resident CSV
                      Group By  [Référence commande],
                      [Région],
                      [Date de la communication de la demande];

                      // Calcul du délai entre les deux dates
                      FINAL:
                      LOAD  [Référence commande],
                      [Région],
                      [Date de la communication de la demande],
                      [Date d'envoi],
                      [Date d'envoi]- [[Date de la communication de la demande] as [Délai]
                      Resident TEMP;
                      // On ramène dans la table le Nom Prénom grâce à deux champs clés : Numéro de Commande et Date d'envoi CV
                      left join(FINAL)
                      LOAD  [Référence commande],
                      [Région],
                      [Délai],
                      [Nom Prénom]
                      Resident CSV;
                      Drop tables CSV, TEMP;    // Suppression des tables inutiles







                      D'avace merci  beaucoup !

                • Re: Isoler une date pour calculer une différence entre deux dates
                  LAURENT CLOATRE

                  Bonjour Céline.

                   

                  Maintenant que ça fonctionne, il faut mettre la question en mode "résolue". ;o)