SQL Server - ELIMINAR Datos Duplicados

 
Vista:

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 04/09/2012 12:52:22
Hola,

Tengo una duda con respecto a una tabla realizada en:

Nombre del servidor : MSSQL
Versión del servidor : Microsoft SQL Server 2008 R2 (RTM)

La duda es la siguiente:

- Tengo dos filas duplicadas y no se distinguen en ningún campo para poder eliminarlas diferenciando algún campo.
Me gustaría saber la manera de poder eliminar una de las dos filas, ya que me está duplicando datos y dando errores en la Intranet.

Espero vuestras respuestas, gracias por la ayuda.

Un saludo,

Patri
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ELIMINAR Datos Duplicados

Publicado por Isaias (4558 intervenciones) el 04/09/2012 20:56:28
Primero, aplica tu ultimo service pack para eliminar el status de RTM.

Segundo, para eliminar un duplicado en 2008

1
2
3
4
5
6
7
8
9
10
11
12
/* Delete Duplicate records */
WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 05/09/2012 10:18:37
Muchas gracias Isaias,

Si pongo la sentencia tal y como me has indicado me da un error.

En cambio, haciendo un select :


SELECT idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria,
ROW_NUMBER() OVER(PARTITION BY idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria ORDER BY idorganismo) AS DuplicateCount
FROM Ayudas

Me da una tabla con el campo DUPLICATE COUNT diferente a 1 cuanto se duplican los datos.

¿¿¿Ahora como puedo eliminar estos datos???

Muchas gracias, un saludo.

Patricia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 05/09/2012 10:28:33
El error que me dá es el siguiente:


Error -2147217900
Sintaxis incorrecta cerca de la palabra clave 'WITH'.

WITH CTE (idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria, DuplicateCount)
AS
(
SELECT idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria,
ROW_NUMBER() OVER(PARTITION BY idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria ORDER BY idorganismo) AS DuplicateCount
FROM Ayudas
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ELIMINAR Datos Duplicados

Publicado por Isaias (4558 intervenciones) el 05/09/2012 17:20:30
A mi no me da error:

WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ELIMINAR Datos Duplicados

Publicado por Isaias (4558 intervenciones) el 05/09/2012 17:21:20
Asi quedaria tu query

WITH CTE (idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria, DuplicateCount)
AS
(
SELECT idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria,
ROW_NUMBER() OVER(PARTITION BY idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria ORDER BY idorganismo) AS DuplicateCount
FROM Ayudas
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por patricia (7 intervenciones) el 05/09/2012 20:05:27
He puesto como quedaría mi query y aún así me vuelve a dar el error:

Error -2147217900
Sintaxis incorrecta cerca de la palabra clave 'WITH'.

WITH CTE (idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria, DuplicateCount)
AS
(
SELECT idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria,
ROW_NUMBER() OVER(PARTITION BY idorganismo,numref,plazo_fin,plazo_inicio,programa_convocatoria ORDER BY idorganismo) AS DuplicateCount
FROM Ayudas
)
DELETE
FROM CTE
WHERE DuplicateCount > 1

Lo realizo desde el analizador de consultas, podría ser por eso??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 06/09/2012 10:21:31
Hola Isaias,

Al final lo que he realizado es añadir un campo a la tabla:

ALTER TABLE Ayudas add Count INT IDENTITY (1,1)

Sabrías alguna sentencia para eliminar ahora ese campo de la tabla:

Un saludo,

Patricia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por JAMS (93 intervenciones) el 06/09/2012 17:31:56
la sintaxis para eliminar un campo de una tabla es


alter table <tabla> drop column <columna>



Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 07/09/2012 08:51:33
Ya la realice sin problemas!

Muchas gracias de todos modos!!

SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ELIMINAR Datos Duplicados

Publicado por Isaias (4558 intervenciones) el 06/09/2012 18:23:56
Me quede con la duda de porque el error en WITH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Patricia (7 intervenciones) el 07/09/2012 08:52:27
Y yo también, intente crear otra tabla diferente y tampoco me dejo. De todas maneras muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Gil (1 intervención) el 15/04/2015 19:01:34
El error es porque la sentencia solo funciona en un bloque anónimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por Alvaro García (1 intervención) el 22/11/2015 19:49:27
Muchísimas gracias, tenía el mismo problema y después de mucho leer lo he resuelto con vuestra ayuda.
Un saludo y da gusto ver gente que ayuda a otros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ELIMINAR Datos Duplicados

Publicado por popo (1 intervención) el 02/12/2015 19:43:05
Gracia Isaias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar