4 Replies Latest reply: Apr 19, 2017 11:13 AM by Sébastien Fatoux RSS

    Comparaison entre deux tables

    anis lakrouf

      Bonjour,

      j'ai deux tables et je veux faire une comparaison entre les deux tables pour savoir les valeurs qui différent.

      Table1  contient 4 champs:

      rubrique    sous-rubrique    sous-rubrique-1    sous-rubrique-2

      Table2  contient 6 champs:

      catégorie     sous-catégorie       rubrique    sous-rubrique    sous-rubrique-1    sous-rubrique-2

      afin de connaitre quel sont les valeurs de rubrique, sous-rubrique, sous-rubrique-1, sous-rubrique-2 qui différent j'ai pensé a crée une clé de concaténation des 4 champs  et après faire un join.

      Qu'en pensez vous?

      Merci

        • Re: Comparaison entre deux tables
          Vineeth Pujari

          Use Qualify()

           

          See this post on how to use it

           

          Do you Qualify?- How to use QUALIFY statement

          • Re: Comparaison entre deux tables
            Mambi Badi

            Bonjour,

            pour les clés de concaténation, c'est faisable avec un if (exists....)  mais tu risques de te retrouver avec plusieurs clés synthétiques ...

            tu peux faire ça aussi  pour contourner le problème  :

            exemple

            T1:

            LOAD * INLINE [

                catégorie ,    sous-catégorie ,rubrique, sous-rubrique, sous-rubrique-1, sous-rubrique-2

                C1, C12, A, A11, A12, A13

                C2, C22, B, B1, B12, B13

                C3, C31, A, A21, A22, A23

                C4, C41, D, D11, D12, D13

            ];

             

            T2:

            Load *, '' as catégorie, '' as [sous-catégorie] ;

            LOAD * INLINE [

                rubrique, sous-rubrique, sous-rubrique-1, sous-rubrique-2

                A, A11, A12, A13

                B, B1, B12, B13

                A, A21, A22, A23

            ];

             

            pour avoir une seule table et ensuite faire un count (distinct...) dans un graphique pour connaitre les differences ...

            • Re: Comparaison entre deux tables
              Sébastien Fatoux

              Salut,

               

              Ajoute un indicateur dans chacune de tes tables (inTable1, inTable2) et joint tes 2 table avec un outer join. Pour faire une jointure il est nécessaire d'avoir au moins un champ en commun pour servir de clé de jointure, il peut très bien en avoir plusieurs, ils vont dans ce cas tous servir de clés de jointure.

               

              Table1:

              LOAD

                 *,

                 1 as inTable1

              INLINE [

                  catégorie ,  sous-catégorie ,rubrique, sous-rubrique, sous-rubrique-1, sous-rubrique-2

                  C1, C12, A, A11, A12, A13

                  C2, C22, B, B1, B12, B13

                  C3, C31, A, A21, A22, A23

                  C4, C41, D, D11, D12, D13

              ];

               

              Outer join (Table1)

              Load

                 *,

                 1 as inTable2

              INLINE [

                  rubrique, sous-rubrique, sous-rubrique-1, sous-rubrique-2

                  A, A11, A12, A13

                  B, B1, B12, B13

                  A, A21, A22, A23

                  E, E11, E12, E13

              ];

               

              Tu pourras alors facilement identifier les lignes existantes dans une seul table ou dans les 2 tables :

              Community_1252054.png