Usuário com melhor resposta
SELECT QUE MOSTRE INFORMAÇÔES DUPLICADAS.

Pergunta
-
Senhores,
Estou com um problema em minha base de dados, tenho uma tabela CLIENTES e na coluna CNPJ há dados duplicados.
Imaginem, há dados duplicados de CNPJ para razões sociais diferentes, então a maioria das NF estão saindo com divergencias.
Como assumi a analise do banco de dados da empresa e ainda sou "novato", gostaria de saber se não há um comando que me traga somente as informações duplicadas.
Obrigado.
Respostas
-
Bom Dia,
É possível, mas o maior problema não será esse. O maior problema será escolher qual das razões sociais irá prevalecer quando o CNPJ for duplicado. O segundo maior problema será igualar os registros das tabelas filhas.declare @t table (cnpj char(14), razaosocial varchar(100)) insert into @t values ('12345678901234', 'Empresa X') insert into @t values ('12345678901234', 'Empresa Y') insert into @t values ('12345678901234', 'Empresa Z') insert into @t values ('01234567890123', 'Empresa A') insert into @t values ('01234567890123', 'Empresa B') insert into @t values ('11111111111111', 'Empresa C') -- Localizar CNPJs duplicados SELECT CNPJ, COUNT(*) As Repeticoes FROM @t GROUP BY CNPJ HAVING COUNT(*) > 1
Esse problema parece ser tão básico mas rende várias dores de cabeça em cenários um pouco mais complicados. Estou inclusive postando uma entrada no meu blog essa semana para tratar disso.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comComo executar tarefas ao iniciar o SQL Server ?
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
Classifique as respostas. O seu feedback é imprescindível- Marcado como Resposta Heloisa Pires sexta-feira, 29 de junho de 2012 18:33
Todas as Respostas
-
Olá,
Você pode agrupar os dados por CNPJ. Use o seguinte comando.
select cnpj, count(codigo) from tabela group by cnpj having count(codigo) > 1
Esse assunto é bem recorrente no fórum. Dá uma pesquisada sobre "dados duplicados".
Abraços
Demétrio Silva -
Bom Dia,
É possível, mas o maior problema não será esse. O maior problema será escolher qual das razões sociais irá prevalecer quando o CNPJ for duplicado. O segundo maior problema será igualar os registros das tabelas filhas.declare @t table (cnpj char(14), razaosocial varchar(100)) insert into @t values ('12345678901234', 'Empresa X') insert into @t values ('12345678901234', 'Empresa Y') insert into @t values ('12345678901234', 'Empresa Z') insert into @t values ('01234567890123', 'Empresa A') insert into @t values ('01234567890123', 'Empresa B') insert into @t values ('11111111111111', 'Empresa C') -- Localizar CNPJs duplicados SELECT CNPJ, COUNT(*) As Repeticoes FROM @t GROUP BY CNPJ HAVING COUNT(*) > 1
Esse problema parece ser tão básico mas rende várias dores de cabeça em cenários um pouco mais complicados. Estou inclusive postando uma entrada no meu blog essa semana para tratar disso.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comComo executar tarefas ao iniciar o SQL Server ?
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
Classifique as respostas. O seu feedback é imprescindível- Marcado como Resposta Heloisa Pires sexta-feira, 29 de junho de 2012 18:33
-
Bom Dia,
Finalizei o artigo no meu blog. Acredito que pode ser útil.
Como eliminar linhas duplicadas e repetições no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!584.entry
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Como eliminar linhas duplicadas e repetições no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!584.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar domingo, 31 de maio de 2009 13:48