6 Replies Latest reply: Mar 4, 2014 11:37 AM by Brice SACCUCCI RSS

    Associer deux tables (un peu comme du géocodage)

    Aline CLOZEL

      Bonjour,

       

      Je cherche à associer deux tables un peu comme du géocodage : dans l'une et l'autre j'ai un nom d'opération mais pas toujours écrit pareil donc je cherche un moyen d'associer ces deux champs dans un premier temps de manière la plus automatique possible et ensuite en corrigeant les incohérences.

       

      Je ne sais même pas comment appeler la fonction si elle existe.

      Merci de votre aide

        • Re: Associer deux tables (un peu comme du géocodage)
          Alessandro Saccone

          Make a Join between the two tables

           

          Load * resident tab1;

          join

          Load * resident tab2;

           

          In this way you have all the combinations.

           

          Then you have the two original columns and try any correption

          • Re: Associer deux tables (un peu comme du géocodage)
            Christophe Brault

            Bonjour,

             

            Si ce n'est pas trop confidentiel, n'hésites pas à partager un qvw d'exemple ou des données de test afin que l'on comprenne mieux ton besoin.

             

            Ou montre tes données de départ et ce à quoi tu veux aboutir.

             

            Pour ma part je ne vois pas exactement ce que tu veux faire.

            • Re: Associer deux tables (un peu comme du géocodage)
              Aline CLOZEL

              Voilà un peu + d'explications :

               

              J'ai une table (en fait une table SIG) qui liste mes logements sociaux par nom de programme : par exemple : "LA VENTOURESO" ou "BARBIERE (tour)"

              J'ai une table issue de données détaillées que j'ai regroupé sur un champ où majoritairement on retrouve ces noms de programme : par exemple : VENTOURESO (sans le LA) ou La barbiére; sachant qu'en plus cette table n'est pas homogène (tout est pas en majuscule, il y a des accents, ...)

               

              Je voudrais arriver à jointer ces 2 tables pour rattacher des données détaillées au point géographique de mon Atlas LLS (mais ça après pas de problème si je suis arrivée à jointer les champs ....

              (une sorte de mappage sur des champs qui se ressemblent mais pas tout à fait !)

               

              Est ce que c'est plus clair ?

              Merci d'avance

                • Re: Associer deux tables (un peu comme du géocodage)
                  christian juillard

                  Bonjour

                   

                  pour rendre cohérent au maximum les chaînes de caractères j'utiliserais la fonction

                  lower ou upper pour tout mettre en minuscule ou majuscule

                  ainsi que les fonctions de transformation comme replace, ou match pour remplace les é et è par e, les  à par a

                  la fonction purgechar pour supprimer les caractères tels que blanc, ( ) , ; * % ....

                   

                  Ex:

                  LOAD

                  Champ     as champ_original

                  lower(purgechar(champ, '(),/% ')     as champ_modifié,

                  autonumber(lower(purgechar(champ, '(),/% ') )    as %champ,    (le m^me en clé numérique)

                   

                  toutes les fonctions sont décrites dans l'aide

                  bon courage

                  Christian

                • Re: Associer deux tables (un peu comme du géocodage)

                  En complément de ce qu'a écrit Christian

                   

                  Il te faut absolument identité des champs, sinon l'association ne se fera pas.

                   

                  Si tu n'as pas beaucoup de transcodage à faire, tu peux toujours remplacer A par B en faisant:

                  1) lecture du table de transcodage (de n'importe quoi vers n'importe quoi)

                  MAPPING LOAD .... 2 champs seulement

                   

                  tu peux donc stocker dans Excel ou autre (INLINE, table SQL) ce que tu as d'un côté, ce que tu veux de l'autre

                   

                  2) Utilisation au cours du LOAD définitif de la fonction ApplyMap() qui va prendre le champ 1 pour le transformer en champ 2.

                   

                  Et si tu as beaucoup de transcodage, la technique de Christian + celle-ci devraient t'aider.

                   

                  Fabrice


                  • Re: Associer deux tables (un peu comme du géocodage)
                    Brice SACCUCCI

                    Bonjour,

                     

                    Si la table A contient les colonnes ID, A1, A2, etc.

                    Et la table B les colonnes ID, B1, B2, etc.

                    ID est la colonne commune, même si les données ne sont pas parfaitement égales.

                     

                    LOAD

                         ID      as ID_Commun,

                         ID      as ID_A,

                         A1,

                         etc.

                    FROM

                         A;

                     

                    LOAD

                         ID      as ID_Commun,

                         ID      as ID_B,

                         B1,

                         etc.

                    FROM

                         B;

                     

                    Dans une feuille, ajouter des sélections pour les champs ID_A et ID_B.

                     

                    En faisant "Sélectionner tout" sur ID_A, vous verrez grâce à l'associativité les valeurs non-associées dans ID_B, en gris. Vous pouvez exporter ces valeurs dans Excel ou faire un copier/coller des valeurs grises (bouton droit).

                     

                    En faisant "Sélectionner tout" sur ID_B, vous verrez grâce à l'associativité les valeurs non-associées dans ID_A, en gris.

                    Vous pouvez exporter ces valeurs dans Excel ou faire un copier/coller des valeurs grises (bouton droit).

                     

                    Ceci vous aidera à créer la table de mapping (transcodage) proposée dans les autres messages.

                     

                    Brice