query

07/11/2006 - 16:28 por Miguel | Informe spam
tengo problemas con una query si alguien mas avanzado me puede ayudar
tengo una tabla con lo siguiente:

id cod fecha
2 11 1/1/2005
5 11 1/2/2005
8 12 1/2/2005
3 12 1/1/2005
4 10 1/1/2005
los id no son correlativos segun creacion

necesito borrar todos los COD duplicados dejando solo uno que serà el que
tenga
fecha mas nueva.

osea en este caso deberia desaparecer el id 2 y 3

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
07/11/2006 - 16:49 | Informe spam
Trata:

delete dbo.t1
where exists (
select *
from dbo.t1 as t2
where t2.cod = dbo.t1.cod and t2.fecha > dbo.t1.fecha
)


AMB


"Miguel" wrote:

tengo problemas con una query si alguien mas avanzado me puede ayudar
tengo una tabla con lo siguiente:

id cod fecha
2 11 1/1/2005
5 11 1/2/2005
8 12 1/2/2005
3 12 1/1/2005
4 10 1/1/2005
los id no son correlativos segun creacion

necesito borrar todos los COD duplicados dejando solo uno que serà el que
tenga
fecha mas nueva.

osea en este caso deberia desaparecer el id 2 y 3
Respuesta Responder a este mensaje
#2 Miguel
07/11/2006 - 17:03 | Informe spam
Gracias alejandro me fue muy util

"Alejandro Mesa" wrote:

Trata:

delete dbo.t1
where exists (
select *
from dbo.t1 as t2
where t2.cod = dbo.t1.cod and t2.fecha > dbo.t1.fecha
)


AMB


"Miguel" wrote:

> tengo problemas con una query si alguien mas avanzado me puede ayudar
> tengo una tabla con lo siguiente:
>
> id cod fecha
> 2 11 1/1/2005
> 5 11 1/2/2005
> 8 12 1/2/2005
> 3 12 1/1/2005
> 4 10 1/1/2005
> los id no son correlativos segun creacion
>
> necesito borrar todos los COD duplicados dejando solo uno que serà el que
> tenga
> fecha mas nueva.
>
> osea en este caso deberia desaparecer el id 2 y 3
Respuesta Responder a este mensaje
#3 Ele
07/11/2006 - 17:04 | Informe spam
Hola te paso un query para que lo revises espero te sirva...

Declare @tabla Table
(Id1 int
,cod int
,fecha smalldatetime
)
Insert into @tabla Values (2,11,'20050101')
Insert into @tabla Values (5,11,'20050201')
Insert into @tabla Values (8,12,'20050201')
Insert into @tabla Values (3,12,'20050101')
Insert into @tabla Values (4,10,'20050101')

Select *
From @tabla t1
Where Exists(Select t2.cod /* esta condicion busca los que estan repetidos
*/
From @tabla t2
Where t2.cod = t1.cod
Group By t2.cod
Having Count(*) > 1
)
/*esta condicion busca los mas antiguos*/
And t1.fecha = (Select Min(t3.fecha)
From @tabla t3
Where t3.cod = t1.cod
) --
"Miguel" escribió en el mensaje
news:
tengo problemas con una query si alguien mas avanzado me puede ayudar
tengo una tabla con lo siguiente:

id cod fecha
2 11 1/1/2005
5 11 1/2/2005
8 12 1/2/2005
3 12 1/1/2005
4 10 1/1/2005
los id no son correlativos segun creacion

necesito borrar todos los COD duplicados dejando solo uno que serà el que
tenga
fecha mas nueva.

osea en este caso deberia desaparecer el id 2 y 3
Respuesta Responder a este mensaje
#4 BitOne®
07/11/2006 - 17:04 | Informe spam
Hola Miguel:

use pubs
go
if object_id('t1','U') is not null
drop table t1
go
create table t1 (
[id] int,
cod int,
fecha datetime
)
go
insert into t1 values ( 2, 11, '20050101')
insert into t1 values ( 5, 11, '20050201')
insert into t1 values ( 8, 12, '20050201')
insert into t1 values ( 3, 12, '20050101')
insert into t1 values ( 7, 10, '20050101')
go

delete b
from t1 a
Inner join
t1 b
on a.cod = b.cod
and a.fecha > b.fecha
go

Saludos,

BitOne®
"Miguel" wrote in message
news:
tengo problemas con una query si alguien mas avanzado me puede ayudar
tengo una tabla con lo siguiente:

id cod fecha
2 11 1/1/2005
5 11 1/2/2005
8 12 1/2/2005
3 12 1/1/2005
4 10 1/1/2005
los id no son correlativos segun creacion

necesito borrar todos los COD duplicados dejando solo uno que serà el que
tenga
fecha mas nueva.

osea en este caso deberia desaparecer el id 2 y 3
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida