Dúvida: Como utilizar a instrução UPDATE com count?[RESOLVIDO]

9 respostas
M

Olá, quero saber se há alguma forma ou um bom exemplo de utilização da instrução sql UPDATE com count(Nome)>1, por exemplo:
update contatos set SituacaoContato = 2 where count(Nome)>1;

Alguém poderia ajudar? :wink:

9 Respostas

L

Exemplo:

update contatos set SituacaoContato = 2 where contatoID in (select contatoID from contatos where contatoNome = ‘Marcio’)

Não sei se eh isso que precisas…

Abs

R

Vc só quer fazer update se o nº de nomes no banco de dados for maior que 1?
Seria isso?

M

Estou tentando atualizar os campos onde há registros duplicados, por isso, estou utilizando o having count(Nome)>1 na query:
update contatos set SituacaoContato = 2 where Telefone_list in(select Telefone_list from contatos group by Telefone_list having count(Telefone_list)>1)); :?:

M

Na verdade o update será executado se houver duplicidade, por isso, estou utilizando o updade desta forma:

Mas não sei se é possível fazer isso como no exemplo acima.

A

o exemplo que você passou acima ( com uma subquery na clausula IN ) não funciona?

que banco está utilizando?

P

Tenta adaptar de um desses aqui.

1.Select para localizar duplicados
select campo,campo1,count() from tabela having count() > 1 group by campo,campo1

2.Como deletar duplicados
delete from tab p1 where rowid < (select max(rowid) from tab1 p2 where p1.primary_key = p2.primary_key);

M

Estou tentando adaptar o código, mas sem sucesso!

O código acima, tem como objetivo, marcar com o valor 2 todos os campos duplicados.

P

tenta esse aqui…

update contatos p1 set SituacaoContato = 2 where Telefone_list< (select max(Telefone_list) from contatos p2 where p1.Telefone_list = p2.Telefone_list);

M

Puka, muito obrigado, valeu a ajuda! :wink:

Criado 9 de setembro de 2010
Ultima resposta 10 de set. de 2010
Respostas 9
Participantes 5