Eliminar sobrantes de una tabla

28/02/2008 - 21:21 por Carlos Sancho | Informe spam
Hola a todos

Tengo una tabla con 3 campos (codigo, c1,c2).
Estoy buscando una sola instrucción T-SQL para eliminar todos los registros
menos el primero cuyo campo codigo sea igual, es decir, quedarme con un
único registro para cada codigo.
Ejemplo:
codigo c1 c2
registro 1: 001 0 7
registro 2: 001 2 5
registro 3: 001 4 6
registro 4: 002 3 7
registro 5: 002 7 9
registro 6: 003 1 2


y al ejecutar la instrucción T-SQL que quede:

codigo c1 c2
registro 1: 001 0 7
registro 2: 002 3 7
registro 3: 003 1 2

Gracias por cualquier sugerencia

Saludos

Carlos Sancho
 

Leer las respuestas

#1 jcac
28/02/2008 - 22:11 | Informe spam
Hola Carlos,

Espero que esto te ayude:

create table #tmp(codigo char(3), c1 int, c2 int)
go
insert into #tmp values('001', 0, 7)
insert into #tmp values('001', 2, 5)
insert into #tmp values('001', 4, 6)
insert into #tmp values('002', 4, 6)
insert into #tmp values('002', 3, 7)
insert into #tmp values('003', 1, 2)
go
select t.codigo, min(t.c1), (select c2 from #tmp where codigo = t.codigo and
c1 = min(t.c1))
from #tmp t
group by t.codigo
go
select * from #tmp
go
drop table #tmp
go

Saludos

Juan Carlos

"Carlos Sancho" escribió en el mensaje
news:
Hola a todos

Tengo una tabla con 3 campos (codigo, c1,c2).
Estoy buscando una sola instrucción T-SQL para eliminar todos los
registros menos el primero cuyo campo codigo sea igual, es decir, quedarme
con un único registro para cada codigo.
Ejemplo:
codigo c1 c2
registro 1: 001 0 7
registro 2: 001 2 5
registro 3: 001 4 6
registro 4: 002 3 7
registro 5: 002 7 9
registro 6: 003 1 2


y al ejecutar la instrucción T-SQL que quede:

codigo c1 c2
registro 1: 001 0 7
registro 2: 002 3 7
registro 3: 003 1 2

Gracias por cualquier sugerencia

Saludos

Carlos Sancho


Preguntas similares