Pesquisar este blog

sexta-feira, 22 de janeiro de 2010

SQL - Verificar duplicidade de código de barra

Ola, seguindo o espírito de "Ask Tom", vou postar alguns truques usando SQL que podem ser muito úteis para os desenvolvedores. Sem perdemos tempo, vamos-la!

Últimamente alguns clientes estão reclamando que há mais de 1 produto com o mesmo código. O Analista, ao verificar o banco de dados, descobre que não existe uma chave única no campo do código de barra. Como podemos saber quais são os produtos que possuem o código duplicado ?

Resposta: Existem várias maneiras de construir um SQL para verificar duplicidade de valor em uma coluna. Uma das maneiras que vou ensinar é usar subquery e a cláusula group by como segue:

select id, codigo, nome
from estoque
where codigo in (select codigo
            from estoque
            group by codigo
            having count(codigo) > 1)


Analisando a consulta, verifique que estamos buscando todos os produtos da tabela estoque que tem o código na sub-consulta. A sub-consulta, por sua vez, lista os códigos da tabela estoque que possuem duplicidade.

Para entender a sub-consulta, é simples, baste dizer que "select codigo from estoque group by codigo" lista todos os códigos sem duplicidade e "having count(codigo) > 1" filtra somente os códigos que existe em mais de 1 tupla na tabela estoque.

Ainda me lembro há 5 anos atraz de um programa em Clipper para fazer isso. Apenas um comando SQL fez todo trabalho!

É isso ai, até o próximo post, com mais dicas!

Nenhum comentário:

Postar um comentário