Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Left Join entre 2 tabelas, por favor me ajudem!

Queria que esse SQL JOIN abaixo  fosse feito no QLIKVIEW, como faço ?  Obs: Estou trazendo todos os resultados, mesmo os que não tem registros.

SELECT * FROM SZC010 AS SZ

  LEFT JOIN SC5010 AS SC

  ON SZ.ZC_CODCUR = SC.C5_CURSO

  ORDER BY SZ.ZC_CODCUR

tentei isso, mas nada feito:

SQL USE CONEXAO15;

TabelaA:

SQL SELECT * FROM SZC010;

OUTER JOIN (TabelaA)

SQL SELECT * FROM SC5010;

Labels (6)
11 Replies
maiconmello
Creator III
Creator III

Kleber boa tarde:

Então, fará o seguinte :

Load  campo1 as campochave , * ;

SQL select * from SZC010;

left join

Load campo1 as campochave * ;

SQL Select * from SC5010;

OBS: Se tiver mais campos que formam a chave, faça ela composta:

Exemplo : Campo1 &'-'& Campo2 &'-'& Campo3 as PK_Campo,*;

                   SQL select * from SZC010;

Faça isso para a tabela SC0510.

Not applicable
Author

Obrigado Maicon pela resposta breve,

Porem cada tabela tem um campo com mesmo conteudo porem nomes diferentes,  na SZC010 o codigo se chama ZC_CODCUR e na tabela SC5010 ela se chama C5_CURSO,   como faço para fazer o left join da SZC010 + SC5010 apenas se  ZC_CODCUR = C5_CURSO   ????

Clever_Anjos
Employee
Employee

Se as duas tabelas existem no mesmo banco de dados, mantenha o JOIN no banco, acredite, bem melhor

maiconmello
Creator III
Creator III

São situações e situações, que necessitam ser avaliadas na questão do join e do left join.

Então vamos la a sua dúvida :

Faria assim :

Cursos:  //Nome da Tabela

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join ou join //fica a seu critério e avalie a necessidade.

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;

Seria isso !

Not applicable
Author

Como fazer o join unindo 3 tabelas.  Obs:  cada tabela tem um nome diferente, porem mesmo conteudo ?  Quero trazer tudo das 3 tabelas (select *) que conferem com o mesmo codigo,  mesmo se tiver nulo/em branco. (quem não comprou tambem deve estar incluido na junção)

Como faria ?  Seria quase isso ?

SZC010 = é a descricao dos cursos

SZ1010 = contem os professores e alunos dos cursos

SC5010 = contem somente quem faturou/comprou algum produto nosso, seja aluno ou professor.

SELECT *

FROM SZC010 AS SZC

  LEFT JOIN SZ1010 AS SZ1

        ON SZ1.Z1_CODCUR = SZC.ZC_CODCUR

  LEFT JOIN SC5010 AS SC5

        ON SC5.C5_CURSO = SZ1.Z1_CODCUR

WHERE SC5.C5_CURSO=SZ1.Z1_CODCUR

maiconmello
Creator III
Creator III

Cleber , vamos pensar em Qlik :

Faria assim :

Cursos:  //Nome da Tabela , é dado o nome que quiser

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join (Cursos)

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;


Left join (Cursos)


Load Campo as PK_CodCurso, * ;

SQL select * from tabela3;


Isso vai atender o que precisa. Observe que o campo PK_CodCurso eu criei. Nome tabela Cursos, esse nome será  o que vai para a memória.


Sempre passa somente os campos que vai precisar no load e no SQL, assim a carga fica mais rápida.


Exemplo :

Load Campo as PK_CodCurso, campo2, campo3 ;

SQL select campo,campo2,campo2 from tabela3;

Not applicable
Author

Sim, mas está trazendo somente os 1783 registros da tabela SZC010,  na tabela SZ1010 tem 27mil registros e a tabela SC5010 tem 630mil registros.

O que queria era desses 1783 registros de cursos, trouxesse junto os multiplos registros de cada um deles nas outras 2 tabelas, o que não está ocorrendo, veja:

Cursos:  //Nome da Tabela , é dado o nome que quiser

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join (Cursos)

Load Z1_CODCUR as PK_CodCurso, * ;

SQL select * from SZ1010;

Left join (Cursos)

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;

maiconmello
Creator III
Creator III

Kleber, use o Right join no lugar do left ou inverta as tabelas.

Exemplo : Como esta ali, mas a com mais registro fazendo a primeira leitura , segunda com mais e a terceira com menos.

Not applicable
Author

Vc quer dizer  pegando a tabela com mais registros, ai right join, depois medios registros, right join e por ultimo a tabela com menos registro e pronto ?