Pular para o conteúdo

SQL UNION e a identidade de documentos de origens distintas

Compare UNION e UNION ALL com quatro fatos distintos e confira a chave composta antes de eliminar registros.

Eliminar linhas iguais no resultado de uma consulta não equivale a eliminar documentos duplicados. Quando a consulta omite a origem e o identificador, dois fatos distintos podem se tornar indistinguíveis para o operador UNION.

O exemplo fictício combina documentos de duas entidades, A e B. A identidade foi confirmada pela combinação entre entidade e número local. Não há sobreposição entre os quatro fatos, cancelamentos, tributos ou conversão monetária. Todos têm a mesma data e valores inteiros em reais. Repetir o número local em entidades diferentes não significa repetir o documento.

Quatro fatos, três pares de data e valor

A entidade A apresenta documentos 001 de R$ 100 e 002 de R$ 200. A entidade B apresenta documentos 001 de R$ 100 e 002 de R$ 300. Os dois documentos de R$ 100 são fatos independentes.

Consulta sobre as duas origens Linhas Total em reais
UNION apenas de data e valor 3 600
UNION ALL apenas de data e valor 4 700
UNION com entidade, número, data e valor 4 700

Na primeira consulta, as linhas de R$ 100 têm exatamente as mesmas colunas projetadas. UNION conserva uma delas. A redução de R$ 100 decorre da consulta, não de uma conclusão documental de duplicidade. Acrescentar a identidade completa permite distinguir os registros mesmo usando UNION.

Conservar tudo também exige controle

UNION ALL mantém as quatro linhas neste conjunto cuja independência foi confirmada. Isso não o torna um procedimento universal para exportações sobrepostas. Se o mesmo documento da mesma entidade aparecer novamente, sua identidade precisa ser examinada antes de fechar a base.

O verificador exige unicidade da chave composta no material importado e testa a inclusão deliberada de uma cópia do primeiro documento. Essa cópia é bloqueada. A conferência não usa o valor monetário como chave, nem aplica um desconto genérico ao total para compensar repetições.

O pacote reúne as duas bases, três consultas executáveis e resultados esperados. SQLite acompanha a biblioteca padrão do Python utilizada no teste. A documentação oficial de consultas compostas descreve a diferença entre UNION e UNION ALL. Na assistência técnica contábil, a memória deve registrar quais campos constituem a identidade do documento e quais foram removidos da projeção. Este laboratório demonstra a perda causada pela projeção reduzida; não substitui a validação da origem das entidades ou dos documentos.

Falar pelo WhatsApp