Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
isaiasdd
Contributor

Buscar valor em outra tabela

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 ?

1 Solution

Accepted Solutions
mario_sergio_ti
Valued Contributor

Re: Buscar valor em outra tabela

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;

3 Replies
mario_sergio_ti
Valued Contributor

Re: Buscar valor em outra tabela

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;

cristianozilz
New Contributor III

Re: Buscar valor em outra tabela

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;

mario_sergio_ti
Valued Contributor

Re: Buscar valor em outra tabela

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.