Jump to content


Photo

Sql Server


  • Faça o login para participar
1 reply to this topic

#1 Vanessa Piti

Vanessa Piti

    Normal

  • Usuários
  • 111 posts
  • Sexo:Não informado
  • Localidade:Curitiba - PR
  • Interesses:Web Design - Design Gráfico<br>Prestação de serviços - Freelancer<br>Parcerias - Troca de Banners

Posted 12/11/2004, 15:26

Como devo fazer o DELETE para excluir da minha tabela cliente todas as linhas onde o campo data é igual? (por exemplo, se tenho duas datas 2004-11-04, deleta uma e fica outra)
Vanessa Pavlak
Web Design - Design Gráfico - Redação
emaildavanessa@gmail.com - Curitiba - PR
http://spaces.msn.co...rs/vanessahaha/

Gosta de Arte Moderna? visite: http://www.indiafilipin.com
Gosta de Samba? visite:http://www.cpidosamba.com

Gosta de Rock? visite:http://www.planetaunderground.com.br

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 12/11/2004, 15:48

Você esta em SQL Server né? Bem, da pra usar este comando:

delete from tabela where id in (select max(id) from tabela group by data having count(data) >= 2)

Como este comando vai proceder?

Execute primeira o subselect para você observar os resultados que são retornados:
select max(id) from tabela group by data having count(data) >= 2

Este vai trazer como resultado o MAXIMO id encontrado para todos os registros que tiverem repetição, no caso igual ou maior a 2.
Este comando funciona, porém, se houverem casos de existir, não somente 2, mas 3 repetições, este comando terá se ser executado diversas vezes, até que não existam mais repetições.
------
Mero mortal!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq