Updade Firebird SQL

09/09/2015

0

Boa Noite pessoal.

Tenho uma tabela de clientes com as seguintes informações...

Codigo Nome Status
1 Joao A
2 Joao A
3 Pedro A
4 Marcos A
5 Marcos A

gostaria de mudar o status para I de um dos clientes que foram duplicados..

Ou seja queria desativar um e deixar o outro ativo..
EXemplo: Joao, deixar apenas um com A


Obrigado. desde já.
Antonelly Silva

Antonelly Silva

Responder

Posts

19/11/2015

Rafael Bosco

---.
Responder

19/11/2015

Jothaz

declare @tab table (Codigo int, Nome varchar(20), Status char(1)) 
insert into @tab (Codigo, Nome, Status) values (1, 'Joao', 'A') 
insert into @tab (Codigo, Nome, Status) values (2, 'Joao', 'A') 
insert into @tab (Codigo, Nome, Status) values (3, 'Pedro', 'A') 
insert into @tab (Codigo, Nome, Status) values (4, 'Marcos', 'A') 
insert into @tab (Codigo, Nome, Status) values (5, 'Marcos', 'A')

--Listando toda a tabela
select * from @tab 

--Listando duplicados
SELECT nome, count(*) FROM @tab 
GROUP BY nome
HAVING COUNT(*) > 1

--Listando duplicados - Recuperando o maior Codigo 
SELECT max(codigo) FROM @tab GROUP BY nome
HAVING COUNT(*) > 1

--Fazendo update do Status dos duplicados,no caso de maior Codigo
update @tab set status = 'I'
where codigo in (SELECT max(codigo) FROM @tab GROUP BY nome
HAVING COUNT(*) > 1)

--Listando toda a tabela com Status atualizado
select * from @tab 



[img]http://arquivo.devmedia.com.br/forum/imagem/418027-20151119-144248.png[/img]
Responder

19/11/2015

Marcos P

No SQL Server...

create table #tab  (Codigo int, Nome varchar(20), Status char(1))
 
insert into #tab (Codigo, Nome, Status) values (1, 'Joao', 'A') 
insert into #tab (Codigo, Nome, Status) values (2, 'Joao', 'A') 
insert into #tab (Codigo, Nome, Status) values (3, 'Pedro', 'A') 
insert into #tab (Codigo, Nome, Status) values (4, 'Marcos', 'A') 
insert into #tab (Codigo, Nome, Status) values (5, 'Marcos', 'A')

update #tab
set Status = 'I'
where Codigo in (select Max(Codigo) from #tab group by Nome) and
      Nome in (select Nome from #tab group by Nome having count(1) > 1)
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar