32 Replies Latest reply: Jun 12, 2014 8:18 AM by christian juillard RSS

    regrouper lignes enregistrements

    Jacky GAUD

      bonjour,

      j'ai une table qui contient les champs suivants :

      Nom PC

      Session

      Date

      HeureOn

      HeureOff

      qui correspond aux connexions et aux déconnexions des utilisateurs sur leur PC.

      Le problème c'est que j'ai une ligne pour le On et une autre ligne pour le Off alors que je voudrais avoir pour un PC et une Session et à une Date le On et le Off sur la même ligne. Comment regrouper les lignes, j'imagine qu'il faut que je reload ma table, mais comment faire ?

       

      Nom PCSessionDateHeureOnHeureOff
      LM1-CDR-A-002fcuser12121/05/201414:11:33-
      LM1-CDR-A-002fcuser12121/05/2014-15:05:27
        • Re: regrouper lignes enregistrements
          christian juillard

          Jacky

           

          2 solutions

           

          1. dans le script charger la table en 2 fois avec les on puis concatenate ou join avec le off

           

          2.mettre HeureOn en dimension et only(HeureOff) en expression

           

           

          christian

            • Re: regrouper lignes enregistrements
              Jacky GAUD

              la solution 1 m'intéresse plus mais je ne comprends pas car avec le concatenate cela met les lignes Off après les lignes On comme à l'origine donc pas le résultat recherché :

               

              final:

              LOAD

              [Nom PC],
              Session,
                  Date,
                  HeureOn
               
              FROM baseTemp.qvd (qvd);

               

              Concatenate

              LOAD 

              [Nom PC],
              Session,
                  Date,
              HeureOff

                  

              FROM baseTemp.qvd (qvd);

               

              ou alors il me manque quelque chose ?

            • Re: regrouper lignes enregistrements

              HeureOn et HeureOff doivent avoir le même nom je pense.

              En SQL ca serai dans le même style qu'un UNION

              • Re: regrouper lignes enregistrements
                Almamy DIABY

                Essaie ce code , ça devrait normalement t'aider

                Table1:

                Load  distinct

                Nom PC,

                Session,

                Date,

                HeureOn

                From Table_source where  len(HeureOn)>0;

                 

                inner join

                 

                Table2:

                Load distinct

                Nom PC,

                Session,

                Date

                HeureOff

                From Table_source where  len(HeureOff)>0;


                NB: Table_source est le même pour Table1 et Table2. On ne fait que une lecture de la même table Source

                mais en s'interessant à des champs specifique.


                • Re: regrouper lignes enregistrements
                  Benjamin DEMOUSTIER

                  Je ne sais pas quels sont les calculs à faire ensuite mais un moyen pourrais être de passer par le 'crosss table':

                   

                  Tableau d'origine:

                  Nom_PC

                  SessionDateHeure_onHeure_off
                  LM1-CDR-A-002fcuser12121/05/201414:11:33
                  LM1-CDR-A-002fcuser12121/05/201415:05:27
                  LM1-CDR-A-002fcuser12121/05/201418:11:33
                  LM1-CDR-A-002fcuser12121/05/201419:05:27
                  LM1-CDR-A-001fcuser10020/05/201410:10:30
                  LM1-CDR-A-001fcuser10020/05/201411:05:20
                  LM1-CDR-A-003fcuser12321/05/201416:00:00
                  LM1-CDR-A-003fcuser12321/05/201419:05:00
                  LM1-CDR-A-004fcuser12422/05/201409:00:00
                  LM1-CDR-A-005fcuser12522/05/201411:00:00

                   

                  script:

                  CrossTable(log_type, heure, 3)

                  LOAD Nom_PC,

                       Session,

                       Date,

                       Heure_on,

                       Heure_off

                  FROM

                  C:\Users\ho.bdemoustier\Desktop\logonloggoff.xlsx

                  (ooxml, embedded labels, table is Feuil1);

                   

                  Tableau Final:

                  Nom_PCSessionDatelog_typeheure
                  LM1-CDR-A-001fcuser10020/05/2014Heure_on10:10:30
                  LM1-CDR-A-001fcuser10020/05/2014Heure_off11:05:20
                  LM1-CDR-A-002fcuser12121/05/2014Heure_on14:11:33
                  LM1-CDR-A-002fcuser12121/05/2014Heure_off15:05:27
                  LM1-CDR-A-003fcuser12321/05/2014Heure_on16:00:00
                  LM1-CDR-A-002fcuser12121/05/2014Heure_on18:11:33
                  LM1-CDR-A-003fcuser12321/05/2014Heure_off19:05:00
                  LM1-CDR-A-002fcuser12121/05/2014Heure_off19:05:27
                  LM1-CDR-A-004fcuser12422/05/2014Heure_on09:00:00
                  LM1-CDR-A-005fcuser12522/05/2014Heure_off11:00:00

                   

                  ce n'est pas le résultat escompté mais cela permet d'effectuer a peu prés tout les calculs que l'on veut derriere non ? (nombre de connexion par PC, durée des connections,.....)