3 Replies Latest reply: Jul 5, 2017 12:53 PM by MARIO SOARES RSS

    Buscar valor em outra tabela

    Isaias Darci

      Tenho uma tabela da seguinte maneira:

       

      Tabela1:

      LOAD * INLINE [

        DataValor, V1, V2

        01/01/2016, '0,033', '0,390'

        01/01/2017, '0,055', '0,590'

      ];

       

      e tenho uma segunda tabela:

       

      Tabela2:

      LOAD * INLINE [

        Data, Produto, Qtde

        31/01/2016, 'XYZ123', 1000

        01/10/2016, 'ABC123', 100

        10/02/2017, 'CDE123', 250

        02/03/2016, 'PYE-89', 300

      ];

       

      Como posso fazer para adicionar na minha tabela2 os campos V1 e V2 da tabela1 quando o campo Data, for >= ao campo DataValor ?

        • Re: Buscar valor em outra tabela
          MARIO SOARES

          Amigo, segue uma forma;

           

          Tabela2:
          LOAD
               0 As 'key',
              *
              INLINE [
              Data, Produto, Qtde
              31/01/2016, 'XYZ123', 1000
              01/10/2016, 'ABC123', 100
              10/02/2017, 'CDE123', 250
              02/03/2016, 'PYE-89', 300
              ];
          
          Inner Join
          
          Tabela1:
          LOAD
               0 As 'key',
              *
              INLINE [
              DataValor, V1, V2
              01/01/2016, '0,033', '0,390'
              01/01/2017, '0,055', '0,590'
               ];
          
          Tabela3:
          LOAD
              Data,
              DataValor,
              Produto,
              Qtde,
              V1,
              V2
              Resident Tabela2 Where Data >= DataValor;
          
          Drop Table Tabela2;
          
          
            • Re: Buscar valor em outra tabela
              Cristiano Zilz

              Boa tarde Mario.

              Achei muito interessante sua solução. Eu somente alteraria a lógica para utilizar o "outer join" ao invés de criar a chave e "juntar" as tabelas com inner join.

              Dá uma olhada no que você acha:

               

              Tabela1:

              LOAD * INLINE [

                DataValor, V1, V2

                01/01/2016, '0,033', '0,390'

                01/01/2017, '0,055', '0,590'

              ];

               

               

              Outer Join

              Tabela2:

              LOAD * INLINE [

                Data, Produto, Qtde

                31/01/2016, 'XYZ123', 1000

                01/10/2016, 'ABC123', 100

                10/02/2017, 'CDE123', 250

                02/03/2016, 'PYE-89', 300

              ];

               

              NoConcatenate

              Tabela3:

              LOAD

                  Data,

                  DataValor,

                  Produto,

                  Qtde,

                  V1,

                  V2

              Resident Tabela1 Where Data >= DataValor;

               

              DROP Table Tabela1;

                • Re: Buscar valor em outra tabela
                  MARIO SOARES

                  Perfeito;

                  O bom da plataforma Qlik que poderemos realizar a mesma tarefa de diferentes formas;

                  Montei esta lógica na hora mesmo, mas existe outras formas sim;

                  Cheguei pensar no Outer Join, é uma boa solução também.

                   

                  Por curiosidade fui testar a sua proposta e não consegui identificar diferença de performance para ambas as soluções, em outra oportunidade, estarei testando com grandes volumes.

                   

                  Abraço amigo.