Duplicacion de registros

21/06/2005 - 21:26 por Franklin Marcano | Informe spam
Tengo el siguiente problema debido a error en la aplicacion, cuando se
intento hacer el cierre del dia donde un procedimiento es disparado y lo que
hace es que lleva data de una tabla a otra tabla de historia, el error fue
que duplico los registros, como hago para borrar ese segundo registro
duplicado.

Asi estan los registros en la tabla

1118-DP001-104 00 380
1118-DP001-104 00 380 ->como hago para
borrar este registro
1118-DP001-104 000 1270
1118-DP001-104 000 1270 ->como hago para borrar
este registro
1118-DP001-104 001 250
1118-DP001-104 001 250 ->como hago para borrar
este registro
1118-DP001-104 002 130
1118-DP001-104 002 130 ->como hago para borrar
este registro
1118-DP001-104 003 250
1118-DP001-104 003 250 ->como hago para borrar
este registro
1118-DP001-104 004 110
1118-DP001-104 004 110 ->como hago para borrar
este registro
1118-DP001-104 005 30
1118-DP001-104 005 30 ->como hago para borrar este
registro
1118-DP001-104 006 60
1118-DP001-104 006 60 ->como hago para borrar este
registro
1118-DP001-104 007 140
1118-DP001-104 007 140 ->como hago para borrar
este registro
1118-DP001-104 008 60
1118-DP001-104 008 60 ->como hago para borrar este
registro
1118-DP001-104 009 50
1118-DP001-104 009 50 ->como hago para borrar este
registro
1118-DP001-104 010 210
1118-DP001-104 010 210->como hago para borrar este
registro
1118-DP001-104 011 250
1118-DP001-104 011 250->como hago para borrar este
registro
1118-DP001-104 012 280
1118-DP001-104 012 280->como hago para borrar este
registro
1118-DP001-104 09 50
1118-DP001-104 09 50->como hago para borrar este
registro
1118-DP001-104 091 200
1118-DP001-104 091 200 ->como hago para borrar
este registro
1118-DP001-104 092 240
1118-DP001-104 092 240->como hago para borrar este
registro
1118-DP001-104 093 60
1118-DP001-104 093 60->como hago para borrar este
registro

como hago para borrar esos registros en lotes ya que tengo que borrar unos
cuantos registros y no quiero hacerlo de forma manual.

Atentamente
Franklin Marcano

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
21/06/2005 - 22:34 | Informe spam
Franklin,

Para poder diferenciar las filas duplicadas entre si, se necesita una
columna que en conjunta con estas tres, diferencia a una fila de otra, por
ejemplo la fecha y tiempo en que se ingresaron las filas en caso de que el
proceso haya insertado las filas en ejecuciones separadas.

delete t1
where exists(select * from t1 as a where a.c1 = t1.c1 and a.c2 = t1.c2 and
a.c3 = t1.c3 and a.col_fecha_ingreso < t1.col_fecha_ingreso)

si no tienes esa columna que nos permita identificar unicamente a una fila,
entonces puedes adicionar una columna identity para eso, pero no garantiza
que se borrara el ultimo registro ingresado, pues sql server asignara el
valor identity como el decida.

alter table t1
add col_ident int not null identity
go

delete t1
where exists(select * from t1 as a where a.c1 = t1.c1 and a.c2 = t1.c2 and
a.c3 = t1.c3 and a.col_ident < t1.col_ident)
go

alter table t1
drop column col_ident
go


AMB
"Franklin Marcano" wrote:

Tengo el siguiente problema debido a error en la aplicacion, cuando se
intento hacer el cierre del dia donde un procedimiento es disparado y lo que
hace es que lleva data de una tabla a otra tabla de historia, el error fue
que duplico los registros, como hago para borrar ese segundo registro
duplicado.

Asi estan los registros en la tabla

1118-DP001-104 00 380
1118-DP001-104 00 380 ->como hago para
borrar este registro
1118-DP001-104 000 1270
1118-DP001-104 000 1270 ->como hago para borrar
este registro
1118-DP001-104 001 250
1118-DP001-104 001 250 ->como hago para borrar
este registro
1118-DP001-104 002 130
1118-DP001-104 002 130 ->como hago para borrar
este registro
1118-DP001-104 003 250
1118-DP001-104 003 250 ->como hago para borrar
este registro
1118-DP001-104 004 110
1118-DP001-104 004 110 ->como hago para borrar
este registro
1118-DP001-104 005 30
1118-DP001-104 005 30 ->como hago para borrar este
registro
1118-DP001-104 006 60
1118-DP001-104 006 60 ->como hago para borrar este
registro
1118-DP001-104 007 140
1118-DP001-104 007 140 ->como hago para borrar
este registro
1118-DP001-104 008 60
1118-DP001-104 008 60 ->como hago para borrar este
registro
1118-DP001-104 009 50
1118-DP001-104 009 50 ->como hago para borrar este
registro
1118-DP001-104 010 210
1118-DP001-104 010 210->como hago para borrar este
registro
1118-DP001-104 011 250
1118-DP001-104 011 250->como hago para borrar este
registro
1118-DP001-104 012 280
1118-DP001-104 012 280->como hago para borrar este
registro
1118-DP001-104 09 50
1118-DP001-104 09 50->como hago para borrar este
registro
1118-DP001-104 091 200
1118-DP001-104 091 200 ->como hago para borrar
este registro
1118-DP001-104 092 240
1118-DP001-104 092 240->como hago para borrar este
registro
1118-DP001-104 093 60
1118-DP001-104 093 60->como hago para borrar este
registro

como hago para borrar esos registros en lotes ya que tengo que borrar unos
cuantos registros y no quiero hacerlo de forma manual.

Atentamente
Franklin Marcano



Respuesta Responder a este mensaje
#2 Jorge Martinez
21/06/2005 - 22:55 | Informe spam
Segun nos lo planteas, con estos campos tendrias que localizar primero los
duplicados de cada registro y despues ayudado por SET ROWCOUNT borrar los
registros:

'' Obtenemos el numero de registros duplicados para los campos campo1 y
campo2 (que son los teoricos campos clave)
SELECT campo1,campo,count(*) FROM tabla GROUP BY campo1,campo2 HAVING
COUNT(*)>1

'' Una vez sabido este COUNT(*) establecemos el valor
SET ROWCOUNT registros-1

'' Borramos los registros sin miedo
DELETE FROM tabla WHERE condiciones

''Finalmente establecemos de nuevo el rowcount
SET ROWCOUNT 0

Espero te haya servido.

Te aconsejo que todo esto lo metas en un SP (pero eso lo dejo para ti)

SalU2


"Franklin Marcano" escribió en el mensaje
news:
Tengo el siguiente problema debido a error en la aplicacion, cuando se
intento hacer el cierre del dia donde un procedimiento es disparado y lo


que
hace es que lleva data de una tabla a otra tabla de historia, el error fue
que duplico los registros, como hago para borrar ese segundo registro
duplicado.

Asi estan los registros en la tabla

1118-DP001-104 00 380
1118-DP001-104 00 380 ->como hago para
borrar este registro
1118-DP001-104 000 1270
1118-DP001-104 000 1270 ->como hago para borrar
este registro
1118-DP001-104 001 250
1118-DP001-104 001 250 ->como hago para borrar
este registro
1118-DP001-104 002 130
1118-DP001-104 002 130 ->como hago para borrar
este registro
1118-DP001-104 003 250
1118-DP001-104 003 250 ->como hago para borrar
este registro
1118-DP001-104 004 110
1118-DP001-104 004 110 ->como hago para borrar
este registro
1118-DP001-104 005 30
1118-DP001-104 005 30 ->como hago para borrar


este
registro
1118-DP001-104 006 60
1118-DP001-104 006 60 ->como hago para borrar


este
registro
1118-DP001-104 007 140
1118-DP001-104 007 140 ->como hago para borrar
este registro
1118-DP001-104 008 60
1118-DP001-104 008 60 ->como hago para borrar


este
registro
1118-DP001-104 009 50
1118-DP001-104 009 50 ->como hago para borrar


este
registro
1118-DP001-104 010 210
1118-DP001-104 010 210->como hago para borrar


este
registro
1118-DP001-104 011 250
1118-DP001-104 011 250->como hago para borrar


este
registro
1118-DP001-104 012 280
1118-DP001-104 012 280->como hago para borrar


este
registro
1118-DP001-104 09 50
1118-DP001-104 09 50->como hago para borrar


este
registro
1118-DP001-104 091 200
1118-DP001-104 091 200 ->como hago para borrar
este registro
1118-DP001-104 092 240
1118-DP001-104 092 240->como hago para borrar


este
registro
1118-DP001-104 093 60
1118-DP001-104 093 60->como hago para borrar


este
registro

como hago para borrar esos registros en lotes ya que tengo que borrar unos
cuantos registros y no quiero hacerlo de forma manual.

Atentamente
Franklin Marcano


Respuesta Responder a este mensaje
#3 Maxi
22/06/2005 - 01:46 | Informe spam
Hola, en este link muestran algunas formas de poder hacer ello

http://www.databasejournal.com/feat...hp/1438651


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Franklin Marcano" escribió en el mensaje
news:
Tengo el siguiente problema debido a error en la aplicacion, cuando se
intento hacer el cierre del dia donde un procedimiento es disparado y lo
que hace es que lleva data de una tabla a otra tabla de historia, el error
fue que duplico los registros, como hago para borrar ese segundo registro
duplicado.

Asi estan los registros en la tabla

1118-DP001-104 00 380
1118-DP001-104 00 380 ->como hago para
borrar este registro
1118-DP001-104 000 1270
1118-DP001-104 000 1270 ->como hago para borrar
este registro
1118-DP001-104 001 250
1118-DP001-104 001 250 ->como hago para borrar
este registro
1118-DP001-104 002 130
1118-DP001-104 002 130 ->como hago para borrar
este registro
1118-DP001-104 003 250
1118-DP001-104 003 250 ->como hago para borrar
este registro
1118-DP001-104 004 110
1118-DP001-104 004 110 ->como hago para borrar
este registro
1118-DP001-104 005 30
1118-DP001-104 005 30 ->como hago para borrar
este registro
1118-DP001-104 006 60
1118-DP001-104 006 60 ->como hago para borrar
este registro
1118-DP001-104 007 140
1118-DP001-104 007 140 ->como hago para borrar
este registro
1118-DP001-104 008 60
1118-DP001-104 008 60 ->como hago para borrar
este registro
1118-DP001-104 009 50
1118-DP001-104 009 50 ->como hago para borrar
este registro
1118-DP001-104 010 210
1118-DP001-104 010 210->como hago para borrar
este registro
1118-DP001-104 011 250
1118-DP001-104 011 250->como hago para borrar
este registro
1118-DP001-104 012 280
1118-DP001-104 012 280->como hago para borrar
este registro
1118-DP001-104 09 50
1118-DP001-104 09 50->como hago para borrar este
registro
1118-DP001-104 091 200
1118-DP001-104 091 200 ->como hago para borrar
este registro
1118-DP001-104 092 240
1118-DP001-104 092 240->como hago para borrar
este registro
1118-DP001-104 093 60
1118-DP001-104 093 60->como hago para borrar este
registro

como hago para borrar esos registros en lotes ya que tengo que borrar unos
cuantos registros y no quiero hacerlo de forma manual.

Atentamente
Franklin Marcano

Respuesta Responder a este mensaje
#4 Franklin Marcano
22/06/2005 - 17:43 | Informe spam
Gracias a todos problema resuelto con las instrucciones aca expuestas.

"Franklin Marcano" escribió en el mensaje
news:
Tengo el siguiente problema debido a error en la aplicacion, cuando se
intento hacer el cierre del dia donde un procedimiento es disparado y lo
que hace es que lleva data de una tabla a otra tabla de historia, el error
fue que duplico los registros, como hago para borrar ese segundo registro
duplicado.

Asi estan los registros en la tabla

1118-DP001-104 00 380
1118-DP001-104 00 380 ->como hago para
borrar este registro
1118-DP001-104 000 1270
1118-DP001-104 000 1270 ->como hago para borrar
este registro
1118-DP001-104 001 250
1118-DP001-104 001 250 ->como hago para borrar
este registro
1118-DP001-104 002 130
1118-DP001-104 002 130 ->como hago para borrar
este registro
1118-DP001-104 003 250
1118-DP001-104 003 250 ->como hago para borrar
este registro
1118-DP001-104 004 110
1118-DP001-104 004 110 ->como hago para borrar
este registro
1118-DP001-104 005 30
1118-DP001-104 005 30 ->como hago para borrar
este registro
1118-DP001-104 006 60
1118-DP001-104 006 60 ->como hago para borrar
este registro
1118-DP001-104 007 140
1118-DP001-104 007 140 ->como hago para borrar
este registro
1118-DP001-104 008 60
1118-DP001-104 008 60 ->como hago para borrar
este registro
1118-DP001-104 009 50
1118-DP001-104 009 50 ->como hago para borrar
este registro
1118-DP001-104 010 210
1118-DP001-104 010 210->como hago para borrar
este registro
1118-DP001-104 011 250
1118-DP001-104 011 250->como hago para borrar
este registro
1118-DP001-104 012 280
1118-DP001-104 012 280->como hago para borrar
este registro
1118-DP001-104 09 50
1118-DP001-104 09 50->como hago para borrar este
registro
1118-DP001-104 091 200
1118-DP001-104 091 200 ->como hago para borrar
este registro
1118-DP001-104 092 240
1118-DP001-104 092 240->como hago para borrar
este registro
1118-DP001-104 093 60
1118-DP001-104 093 60->como hago para borrar este
registro

como hago para borrar esos registros en lotes ya que tengo que borrar unos
cuantos registros y no quiero hacerlo de forma manual.

Atentamente
Franklin Marcano

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida