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
thiago_mlg
Creator II
Creator II

A tabela que vc tira o RESIDENT e coloca por sql, esta tabela foi carregada anteriormente??

Not applicable
Author

sim

thiago_mlg
Creator II
Creator II

Se possível passa ai o código que vc esta usando, pode mudar o nome dos campos, mais seria o ideal que mante-se a estrutura.. pois você mandou o código acima e nele contem um erro que irei lhe descrever.

Tabela1

LOAD

id,

nota,

mês,

ano,

valor

sql select

id,

nota,

mês,

ano,

valor

from .....      MANTENHA AQUI OS CAMPOS PADRÃO E SÓ RENOMEIE EM BAIXO

Tabela2:

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2

resident Tabela2;   AQUI O CORRETO É RESIDENT TABELA1  POIS VC ESTA PUXANDO OS MESMOS DADOS DA TABELA1 QUE CARREGOU ACIMA ---

right join (Tabela2)

...................

AQUI EM BAIXO SERIA OUTRA TABELA QUE VC VAI CARREGAR DO EXCEL CERTO.

Not applicable
Author

na verdade eu carrego essa outra tabela do banco

Not applicable
Author

AQUI EM BAIXO SERIA OUTRA TABELA QUE VC VAI CARREGAR DO EXCEL CERTO, eu carrego essa outra tabela do banco

Not applicable
Author

AQUI O CORRETO É RESIDENT TABELA1  POIS VC ESTA PUXANDO OS MESMOS DADOS DA TABELA1 QUE CARREGOU ACIMA,

foi só um erro de digitação no meu script com dados reais, está resident tabela1

thiago_mlg
Creator II
Creator II

Entendi.. este está sendo nosso problema, estou tentando imaginar o que pode estar errado em seu código, visto que este comando não teria por que não funcionar, então se possivel copie o codigo e cole aqui.. pode alterar o nome dos campos.. pra vermos como está a estrutura.

Not applicable
Author

'Ok

Not applicable
Author

TABELA1:

LOAD

nota,

id,

ano,

mes,

valor;

SQL SELECT

nota

id,

ano,

mes,

valor

FROM bi_aut WITH (READUNCOMMITTED);

STORE TABELA1 INTO TABELA1.qvd;

TABELA2:

LOAD 

nota,

id,

ano,

mes,

valor

resident TABELA1;

STORE TABELA2 INTO TABELA2.qvd;

Right join (TABELA2)

LOAD

    nota as notaemp,

    id,

    vl AS valoremp,

    ano as anoemp,

    mês as mesemp,

    id_ger2;  

SQL SELECT

nota ,

id_cred,

    vl ,

    ano

    mês ,

    id_ger  

FROM tep2;

thiago_mlg
Creator II
Creator II

em cima do seu código, fiz algumas alterações. Veja se funciona:

TABELA1:

LOAD

nota,

id,

ano,

mes,

valor;

SQL SELECT

nota

id,

ano,

mes,

valor

FROM bi_aut WITH (READUNCOMMITTED);

STORE TABELA1 INTO TABELA1.qvd;

TABELA2:

LOAD

nota as nota2,

id     as id2,

ano   as ano2,

mes  as mes2,

valor as valor2

resident TABELA1;

STORE TABELA2 INTO TABELA2.qvd;

Right join (TABELA2)

LOAD

    nota as nota2,

    id     as id2,

    vl AS valor2,

    ano as ano2,

    mês as mes2,

    id_ger2;

SQL SELECT

nota ,

id_cred,

    vl ,

    ano

    mês ,

    id_ger

FROM tep2;