SQL - RETORNO DE MUITOS, MUITOS DADOS

FBUR 13/08/2015 13:42:45
#449921
Boa tarde.

Fiz um sistema que compara notas fiscais de entrada. Compara as notas que já foram lançadas no sistema com os XML.

Eis a SQL:

SELECT * FROM tbl_xml WHERE nf NOT IN (SELECT nf FROM tbl_notas) and cnpj NOT IN (SELECT cnpj FROM tbl_notas);


Existem aprox. 130.000 registros na tbl_xml e 125.000 registros na tbl_notas.

A lógica deveria ser retornar a combinação NF+CNPJ da tbl_xml que não estejam na tbl_notas. Mas eu não tenho certeza se essa SQL está me retornando os resultados que eu desejo. Digo isso porque existem notas que deveriam ser retornadas e não foram.

Uma opção seria comparar todos os itens da tbl_xml com todos os itens da tbl_notas. Mas isso geraria mais de 16 bilhões de comparações. Aí pensei que uma SQL iria trazer o resultado em menos tempo.

Abs.
ASHKATCHUP 13/08/2015 13:49:38
#449924
Resposta escolhida
Testa essa:


Select nf, cnpj
From tbl_xml left join tbl_notas On tbl_xml.nf = tbl_notas.nf and tbl_xml.cnpj = tbl_notas.cnpj
Where tbl_notas.nf is null
FBUR 14/08/2015 08:20:44
#449967
é isso mesmo. Funcionou muito bem.

Obrigado!

Abs.
Tópico encerrado , respostas não são mais permitidas