DIFERENCA ENTRE DUAS TABELAS NO ACESS
Galera, me pediram para colocar uma nova função em um sistema antigo, onde preciso ver uma diferente entre duas tabelas e estou usando o seguinte comando
SELECT T.CodTit from tbtitulos T where T.CodTit not in ( Select R.CodTit from tbretorno R )
Pois quero retornar o que esta na tabela tbtitulos e não esta na tabela tbretorno, só que tem um grande problema, esta demorando demais para retornar o valor.
Será que alguém pode me ajudar a como diminuir esse tempo?
Ou tem algum outro comando para poder fazer isso?
Banco Acess
Tabela TbTitulos = 47830 registros
Tabela TbRetorno = 25104 registros
TbTitulos - Chave Primária - CodTit
TbRetorno - CodTit - Indexada e permitindo duplicação
Esta demorando mais de 20 min e consulta e não trás nada, rodo esse comando no banco e ele começa a trazer alguma coisa, depois para e da que não esta mais respondendo
Abraço a todos e desde já agradeço
SELECT T.CodTit from tbtitulos T where T.CodTit not in ( Select R.CodTit from tbretorno R )
Pois quero retornar o que esta na tabela tbtitulos e não esta na tabela tbretorno, só que tem um grande problema, esta demorando demais para retornar o valor.
Será que alguém pode me ajudar a como diminuir esse tempo?
Ou tem algum outro comando para poder fazer isso?
Banco Acess
Tabela TbTitulos = 47830 registros
Tabela TbRetorno = 25104 registros
TbTitulos - Chave Primária - CodTit
TbRetorno - CodTit - Indexada e permitindo duplicação
Esta demorando mais de 20 min e consulta e não trás nada, rodo esse comando no banco e ele começa a trazer alguma coisa, depois para e da que não esta mais respondendo
Abraço a todos e desde já agradeço
Realmente isso no Access é complicado. Em SGBDs pra resolver essa situação usamos EXISTS. Existe algum Ãndice ou PK no campo CodTit nas duas tabelas? Se não, crie nas duas e faça um teste.
Pensando melhor aqui, faz assim primeiro, acho que assim funciona bem melhor:
Dessa forma só serão retornados registros que não ocorrem junção, ou seja, não existem em tbretorno.
Pensando melhor aqui, faz assim primeiro, acho que assim funciona bem melhor:
SELECT T.CodTit, R.CodTit from tbtitulos T LEFT JOIN tbretorno R ON T.CodTit = R.CodTit WHERE R.CodTit IS NULL
Dessa forma só serão retornados registros que não ocorrem junção, ou seja, não existem em tbretorno.
LLAIA bom dia !
LLAIA quero agradecer pelo retorno, e primeiro respondendo a sua pergunta
Sim tem uma PK, na TBTITULOS más infelizmente não resolveu o problema, pois eu sabia que o Access tem esse problema
TbTitulos - Chave Primária - CodTit
TbRetorno - CodTit - Indexada e permitindo duplicação
e Segundo seu comando funcionou perfeito, vlw pela ajuda, a consulta foi rápida e trouxe o que eu estava querendo.
Vlw e abraço
LLAIA quero agradecer pelo retorno, e primeiro respondendo a sua pergunta
Sim tem uma PK, na TBTITULOS más infelizmente não resolveu o problema, pois eu sabia que o Access tem esse problema
TbTitulos - Chave Primária - CodTit
TbRetorno - CodTit - Indexada e permitindo duplicação
e Segundo seu comando funcionou perfeito, vlw pela ajuda, a consulta foi rápida e trouxe o que eu estava querendo.
Vlw e abraço
Tópico encerrado , respostas não são mais permitidas