- Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 7 meses atrás por
Miro.
-
AutorPosts
-
12 de agosto de 2009 às 7:58 pm #88854
Miro
ParticipanteOla, preciso de u ❓ ma ajuda para um script ❓
tenho duas tabelas que se relacionam com 3 campos, na tabela A tenho informações cadastradas, mas na tabela B nao tenho, quando faço uma consulta onde preciso relacionar as duas nao lista nada pois na tabela B esta vazia, como posso listar mesmo sem informações na tabela B
segue exemplo ➡
select a.numcad, b.codcon
from tabela.a, tabela.b
and a.numemp = b.numemp
and a.tipcol = b.tipcol
and a.numcad = b.numcad12 de agosto de 2009 às 8:27 pm #88857ramasine
ParticipanteOlá Miro,
Qual a versão do seu banco de dados!
No teu caso e se entendi bem a sua questão tú precisarás de um OUTER JOIN entre as tabelas!!
Mas dependendo da versão, muda a sintaxe de como montar o outer!Abs
Marcelo
12 de agosto de 2009 às 8:28 pm #88859Leonardo Litz
ParticipanteFaça assim, utilize um left join
select a.numcad, b.codcon
from tabela.a, tabela.b
and a.numemp = b.numemp(+)
and a.tipcol = b.tipcol(+)
and a.numcad = b.numcad(+)Vlw Leonardo Litz
12 de agosto de 2009 às 8:28 pm #88860Manoel872
Participanteselect a.numcad, b.codcon
from tabela.a, tabela.b
and a.numemp = b.numemp(+)
and a.tipcol = b.tipcol(+)
and a.numcad = b.numcad(+)Utilize o outer join para que traga tudo que existe na tabela mesmo se não existe na tabela B.
13 de agosto de 2009 às 2:53 pm #88889Miro
Participantenao estou conseguindo fazer dentro de uma sub-consulta segue o script
select *
FROM
R034FUN,
R010SIT,
R034CON,
r016orn,
r030empWHERE r034fun.numemp IN (1,2,5) AND R034FUN.TIPCOL = 1 and r034fun.numcad = 3 and r034con.numemp = r034fun.numemp and r034con.tipcol = r034fun.tipcol and r034con.numcad = r034fun.numcad and r034fun.numemp = r030emp.numemp and r034fun.taborg = r016orn.taborg and r034fun.numloc = r016orn.numloc and R034FUN.SITAFA = R010SIT.CODSIT AND R034FUN.DATADM <= ('&data') AND EXISTS(SELECT 1 FROM R038HFI WHERE R038HFI.NUMEMP = R034FUN.NUMEMP AND R038HFI.TIPCOL = R034FUN.TIPCOL AND R038HFI.NUMCAD = R034FUN.NUMCAD AND R038HFI.DATALT <= ('&data')) AND R034CON.DATALT = (SELECT MAX (DATALT) FROM R034CON TABELA001 WHERE TABELA001.NUMEMP = R034CON.NUMEMP(+) AND TABELA001.TIPCOL = R034CON.TIPCOL(+) AND TABELA001.NUMCAD = R034CON.NUMCAD(+) AND TABELA001.DATALT <= ('&data')) AND NOT EXISTS (SELECT 1 FROM R038AFA WHERE R038AFA.NUMEMP = R034FUN.NUMEMP AND R038AFA.TIPCOL = R034FUN.TIPCOL AND R038AFA.NUMCAD = R034FUN.NUMCAD AND R038AFA.DATAFA = (SELECT MAX(R038AFA.DATAFA) FROM R038AFA, R010SIT WHERE R038AFA.NUMEMP = R034FUN.NUMEMP AND R038AFA.TIPCOL = R034FUN.TIPCOL AND R038AFA.NUMCAD = R034FUN.NUMCAD AND R038AFA.DATAFA <= ('&data') AND R038AFA.SITAFA = R010SIT.CODSIT AND R010SIT.TIPSIT = 7))[quote="Litz":12438eir]Faça assim, utilize um left join
select a.numcad, b.codcon
from tabela.a, tabela.b
and a.numemp = b.numemp(+)
and a.tipcol = b.tipcol(+)
and a.numcad = b.numcad(+)Vlw Leonardo Litz[/quote]
13 de agosto de 2009 às 5:56 pm #88893Miro
Participante10.2.0.4.0
[quote=”ramasine”:1eey371l]Olá Miro,
Qual a versão do seu banco de dados!
No teu caso e se entendi bem a sua questão tú precisarás de um OUTER JOIN entre as tabelas!!
Mas dependendo da versão, muda a sintaxe de como montar o outer!Abs
Marcelo[/quote]
-
AutorPosts
- Você deve fazer login para responder a este tópico.