Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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;
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.
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 ????
Se as duas tabelas existem no mesmo banco de dados, mantenha o JOIN no banco, acredite, bem melhor
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 !
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
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;
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 ;
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.
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 ?