Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 ?
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;
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;
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;
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.