SQL - RETORNO DE MUITOS, MUITOS DADOS
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:
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.
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.
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
é isso mesmo. Funcionou muito bem.
Obrigado!
Abs.
Obrigado!
Abs.
Tópico encerrado , respostas não são mais permitidas