Sera posible un delete de estos registros ?

12/10/2006 - 01:08 por Penta | Informe spam
Estimados.
Tengo:

MARCA ANO FechaHora
AUDI 2006 01/01/2006 12:00
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 12:00
BMW 2006 01/01/2006 13:00
asi digamos unos 1000 registros, quisiera tener registros unicos de
MARCA ANO, por lo tanto quisiera poder eliminar los registros
"duplicados" cuya FechaHora sea menor

La idea es que me quede:
MARCA ANO FechaHora
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 13:00


Datos: solo tengo 2 registros por cada PK MARCA ANO


Muchas Gracias.
Penta.

Preguntas similare

Leer las respuestas

#1 Isaias
12/10/2006 - 07:04 | Informe spam
Intentaremos

CREATE TABLE #AUTOS(CANTIDAD INT, MARCA VARCHAR(50), ANO CHAR(4))
INSERT INTO #AUTOS
SELECT COUNT(MARCA), MARCA, ANO
FROM TUTABLA
GROUP BY MARCA, ANO

DECLARE @MARCA VARCHAR(50), @ANO CHAR(4), @CANT INT

WHILE EXISTS(SELECT MARCA FROM #AUTOS)
BEGIN
SELECT TOP 1 @CANT = CANTIDAD,
@MARCA = MARCA,
@ANO = ANO
FROM #AUTOS
SET @CANT = @CANT-1
SET ROWCOUNT @CANT
DELETE #AUTOS WHERE
@MARCA = MARCA,
@ANO = ANO
SET ROWCOUNT 0
CONTINUE
END

Creo que debe funcionar, no tengo literatura a la mano, lo estoy haciendo
con lo que traigo en la memoria, te recomiendo que hagas una prueba en una
tabla de paso.

Saludos
IIslas


"Penta" wrote:

Estimados.
Tengo:

MARCA ANO FechaHora
AUDI 2006 01/01/2006 12:00
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 12:00
BMW 2006 01/01/2006 13:00
asi digamos unos 1000 registros, quisiera tener registros unicos de
MARCA ANO, por lo tanto quisiera poder eliminar los registros
"duplicados" cuya FechaHora sea menor

La idea es que me quede:
MARCA ANO FechaHora
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 13:00


Datos: solo tengo 2 registros por cada PK MARCA ANO


Muchas Gracias.
Penta.


Respuesta Responder a este mensaje
#2 Alejandro Mesa
12/10/2006 - 14:18 | Informe spam
Trata:

delete
dbo.t1
where
exists (
select *
from dbo.t1 as t2
where
t2.MARCA = dbo.t1.MARCA
and t2.ANO = dbo.t1.ANO
and t2.FechaHora > dbo.t1.FechaHora
)

Eliminar filas si existe alguna fila con igual MARCA y ANO pero cuya columna
FechaHora sea mayor a la que se procesa.

Esto codigo no ha sido probado.


AMB

"Penta" wrote:

Estimados.
Tengo:

MARCA ANO FechaHora
AUDI 2006 01/01/2006 12:00
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 12:00
BMW 2006 01/01/2006 13:00
asi digamos unos 1000 registros, quisiera tener registros unicos de
MARCA ANO, por lo tanto quisiera poder eliminar los registros
"duplicados" cuya FechaHora sea menor

La idea es que me quede:
MARCA ANO FechaHora
AUDI 2006 01/01/2006 13:00
BMW 2006 01/01/2006 13:00


Datos: solo tengo 2 registros por cada PK MARCA ANO


Muchas Gracias.
Penta.


Respuesta Responder a este mensaje
#3 Penta
12/10/2006 - 16:11 | Informe spam
Hola.
La llave es Marca Ano, intentare mientras los datos que me indican.

Gracias.
Respuesta Responder a este mensaje
#4 Penta
12/10/2006 - 16:14 | Informe spam
Me sirvio 100% MIL GRACIAS !!!!!!!!!!!!!


Penta.


Alejandro Mesa wrote:
Trata:

delete
dbo.t1
where
exists (
select *
from dbo.t1 as t2
where
t2.MARCA = dbo.t1.MARCA
and t2.ANO = dbo.t1.ANO
and t2.FechaHora > dbo.t1.FechaHora
)

Eliminar filas si existe alguna fila con igual MARCA y ANO pero cuya columna
FechaHora sea mayor a la que se procesa.

Esto codigo no ha sido probado.


AMB

"Penta" wrote:

> Estimados.
> Tengo:
>
> MARCA ANO FechaHora
> AUDI 2006 01/01/2006 12:00
> AUDI 2006 01/01/2006 13:00
> BMW 2006 01/01/2006 12:00
> BMW 2006 01/01/2006 13:00
> asi digamos unos 1000 registros, quisiera tener registros unicos de
> MARCA ANO, por lo tanto quisiera poder eliminar los registros
> "duplicados" cuya FechaHora sea menor
>
> La idea es que me quede:
> MARCA ANO FechaHora
> AUDI 2006 01/01/2006 13:00
> BMW 2006 01/01/2006 13:00
>
>
> Datos: solo tengo 2 registros por cada PK MARCA ANO
>
>
> Muchas Gracias.
> Penta.
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida