1 Reply Latest reply: Oct 8, 2014 4:22 AM by Martin Sorel RSS

    Exploser une zone separée avec des points virgules sur plusieurs lignes

    Emilien Petrini

      Bonjour,

       

      j'ai une table avec dans un champs des informations séparé par des points virgules, je souhaiterais les eclater sur plusieurs lignes.

       

      Ma table :

      Magnitude_Ctrl.NiveauAccount_GroupMulti Func AreaMagnitude_Ctrl.RubriqueMagnitude_Ctrl.Montant socialMagnitude_Ctrl.Commentaires
      0R6032001CIR60320-[SOLDE]/1000
      0R6040001CI;02CI;03CI;04CIR60400CI-[SOLDE]/1000

       

      le résultat souhaitait

       

      Magnitude_Ctrl.NiveauAccount_GroupMulti Func AreaMagnitude_Ctrl.RubriqueMagnitude_Ctrl.Montant socialMagnitude_Ctrl.Commentaires
      0R6032001CIR60320-[SOLDE]/1000
      0R6040001CIR60400CI-[SOLDE]/1000
      0R6040002CIR60400CI-[SOLDE]/1000
      0R6040003CIR60400CI-[SOLDE]/1000
      0R6040004CIR60400CI-[SOLDE]/1000

       

      Si quelqu'un a une idée merci d'avance

        • Re: Exploser une zone separée avec des points virgules sur plusieurs lignes
          Martin Sorel

          Bonjour,

          C'est faisable de la façon suivante par une boucle dans le script:

           

          temp:   //table temporaire qui charge simplement les données

          LOAD Magnitude_Ctrl.Niveau ,

               Account_Group ,

               [Multi Func Area] ,

               Magnitude_Ctrl.Rubrique,

               [Magnitude_Ctrl.Montant social],

               Magnitude_Ctrl.Commentaires

          FROM

          [datas.xlsx]

          (ooxml, embedded labels, table is Feuil1);

           

           

          result:

          lOAD  Magnitude_Ctrl.Niveau ,

               Account_Group ,

               SubField([Multi Func Area],';',ITERNO()) AS function ,

               Magnitude_Ctrl.Rubrique,

               [Magnitude_Ctrl.Montant social],

               Magnitude_Ctrl.Commentaires

             

          RESIDENT temp

          WHILE(ITERNO()<=SubStringCount([Multi Func Area],';')+1);

          DROP TABLE temp;

           

           

          je me suis inspiré de ce post:How to separate comma delimited field during load

           

           

          Martin