Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Right Join com mais de um campo em comum

Bom dia!

Como fazer um right join com mais de um campo em comum.

Estou fazendo um  right join e o hash128(id,nota,ano,mes), mas não dá certo.

Tabela 1

idnotamesanovalor
101606201420
101506201430
101206201440
151206201450

Tabela2

idnotamesano
1016062014
1015062014
1012062014
1013062014

Resultado que desejo:

idnotamesanovalor
101606201420
101506201430
101206201440
1013062014

Carrega sempre todos os dados da tabela2(por isso usei o right join)

Esses não são dados reais, tentei fazer uma simulação, ficou muito parecido com meus dados reais.

Labels (1)
32 Replies
maxgro
MVP
MVP

if I understand

Tabela1:

LOAD id,

     nota,

     mes,

     ano,

     valor

FROM

[http://community.qlik.com/thread/151764]

(html, codepage is 1252, embedded labels, table is @1);

Right join (Tabela1)

LOAD id,

     nota,

     mes,

     ano

FROM

[http://community.qlik.com/thread/151764]

(html, codepage is 1252, embedded labels, table is @2);

Not applicable
Author

Dessa maneira muda os valores da tabela1, eu queria criar uma nova tabela com esse valores, no caso a tabela2, exemplo : eu já tenho minha tabela 1 montada, quero pegar esses dados na tabela2.

Not applicable
Author

Estou postando o qvw: posso até mudar  a tebela2 ou criar uma nova tabela3 , mas a tabela 1 não pode sofrer alterações já que é usada em outro módulo.

thiago_mlg
Creator II
Creator II

Breno, como vc nao quer alterar a estrutura da tabela 1, faça o seguinte:

TABELA1:

LOAD id,

     nota,

     mês,

     ano,

     valor

FROM

C:\Users\Fabio\Desktop\TABELA1.xlsx

(ooxml, embedded labels, table is Plan1);

Tabela 2:                    aqui vc vai novamente carregar os dados da tabela 1.. só que ia chamar de tabela 2 e ira mudar os campos para nao dar chave sintética

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2,

        valor

FROM

C:\Users\Fabio\Desktop\TABELA1.xlsx  --- NOTE (from tabela1)

(ooxml, embedded labels, table is Plan1);

rigth join

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2

FROM

C:\Users\Fabio\Desktop\TABELA2.xlsx

(ooxml, embedded labels, table is Plan1);

ou seja ele ira criar a tabela2 realizando o join das duas tabelas sem alterar a tabela 1

Espero ter ajudado

Thiago Gonçalo

Not applicable
Author

Eu pensei a mesma coisa que você Thiago, mas eu não queria carregar novamente essa tabela1, pq ele é a mais pesada de todas 20 milhões de registros, minha carga ficaria muito mais lenta, mas não sei se tem outra forma.

thiago_mlg
Creator II
Creator II

Putz Breno... vacilo meu tambem..

Cara.. como vc ja carregou a tabela 1 .. basta no código de criação da tabela 2 vc usar o RESIDENT.. pois como sua tabela ja está em memoria.. nao precisaria carregar denovo.. ai então ele não onera tanto o processo.

Tabela 2:                    aqui vc vai novamente carregar os dados da tabela 1.. só que ia chamar de tabela 2 e ira mudar os campos para nao dar chave sintética

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2,

        valor

Resident Tabela1;

rigth join

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2

FROM

C:\Users\Fabio\Desktop\TABELA2.xlsx

(ooxml, embedded labels, table is Plan1);

Not applicable
Author

Ok vou tentar e mando resposta:

thiago_mlg
Creator II
Creator II

Deu certo Breno?

Qualquer dúvida, nos comunique para tentarmos ajudar.

Abraços

Not applicable
Author

Ainda Não, estou fazendo alguns testes, quando tiver uma reposta comunico, Obrigado Thiago