Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
junior_ehlke
Creator III
Creator III

Join em Projeto

Boa tarde, faz alguns dias que não consigo chegar a uma solução.

Tenho 4 tabelas que são vinculadas por id_unidade e id_tempo, preciso unir elas, porém tentei com todos os tipos de join e as linhas ficam duplicadas.

O Cógido é o seguinte:

Venda:

load

  ApplyMap ('Depara', id_unidade) as id_unidade,

  id_tempo,

  sum(mprd_valor) as mprd_valor_vvd

  From

  $(vCaminho)\Vendadetalhe_*.qvd(qvd)

  group by id_unidade, id_tempo ;

left join

load

  ApplyMap ('Depara', id_unidade) as id_unidade,

  id_tempo,

  sum(mprd_valor) as mprd_valor_vdvd

  From

  $(vCaminho)\DevVendaDetalhe_*.qvd(qvd)

  group by id_unidade, id_tempo ;

Left Join

LOAD

  Unidade as id_unidade,

    Mês as id_tempo,

    Auditoria as auditoria

FROM

$(vCaminho)\calendarioauditoria.xlsx

(ooxml, embedded labels, table is Plan1);

Labels (1)
1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Evite usar JOIN´s quando estiver carregando vários QVD´s com $(vCaminho)\Vendadetalhe_*.qvd(qvd)

Carregue tudo para tabelas temporárias, depois faça os join

View solution in original post

10 Replies
nicolett_yuri

Hamilton, isso pode estar ocorrendo devido ao relacionamento entre elas ser 1 para N... bom, mas ainda estamos sem muitas informações da sua situação.

Poderia, por favor, nos passar um exemplo de seus dados e nos dizer qual o resultado esperado?

junior_ehlke
Creator III
Creator III
Author

Yuri, é a continuação de um código que você mesmo me ajudou em um outro questionamento,

eu ja carrego essas 3 tabelas anteriormente e consegui resolver esse Join fazendo o seguinte:

QUALIFY *;

Venda_Logica:

LOAD

  id_unidade,

  id_tempo,

  mprd_valor_vd,

  mprd_valor_dvd

Resident FatoDetalhe;

UNQUALIFY *;

Venda_Liquida:

load

  Venda_Logica.id_unidade as id_unidade,

  Venda_Logica.id_tempo as id_tempo,

  sum(Venda_Logica.mprd_valor_vd)-sum(Venda_Logica.mprd_valor_dvd) as venda_liquida

Resident Venda_Logica

Group by Venda_Logica.id_unidade, Venda_Logica.id_tempo;

Left Join (Venda_Liquida)

LOAD

  Unidade as id_unidade,

    MêA as id_tempo,

    Auditoria as auditoria

FROM

D:\1-QLIKVIEW_DESENVOLVIMENTO\Dados_Armazenados\Dados_Apoio\calendarioauditoria.xlsx

(ooxml, embedded labels, table is Plan1);

Em todo caso, obrigado pelo seu interesse.

Acredito que eu possa excluir este tópico.

Clever_Anjos
Employee
Employee

Evite usar JOIN´s quando estiver carregando vários QVD´s com $(vCaminho)\Vendadetalhe_*.qvd(qvd)

Carregue tudo para tabelas temporárias, depois faça os join

nicolett_yuri

Exatamente, nessas situações o QlikView faz JOIN somente para a primeira tabela carregada

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Hamilton,

Pode marcar tua resposta como correta para fechar o post, isso ajudará outras pessoa com dúvidas.

Não precisa excluir.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
junior_ehlke
Creator III
Creator III
Author

Apenas confirmando, a forma que eu fiz acima esta correta?

Carreguei duas tabelas virtuais antes de fazer o Join, é isto mesmo,?

Estou carregando duas tabelas como Venda_Logica e faço o join na Venda_Liquida, depois eu dou um Drop da Venda_Logica.

Como falei, é continuação de uma ajuda que o Yuri Nicolett, agora consegui entender a logica e alterar o código conforme minha necessidade. Desta forma funcionou.

nicolett_yuri

Esta sim

Clever_Anjos
Employee
Employee

Se o Yuri Nicolett falou que está certo, está certo

junior_ehlke
Creator III
Creator III
Author

haha isso eu ja aprendi (Y)