Alguien puede ayudarme con esta consulta... gracias

17/06/2005 - 02:36 por Marcelo Otero | Informe spam
Hola Gente: espero poder expresar con palabras lo que intento hacer y no
puedo. El tema es el siguiente: mediante una consulta que me devuelve un
resultado con campos idservicio, agente, ubicacionori, fechadealta

(SELECT s.idservicioagente, s.Agente ,s.ubicacionorig, s.FechaAlta
FROM ServiciosAgentes s INNER JOIN Organizaciones o ON
s.UbicacionOrig=o.IDOrganizaciones
ORDER BY s.Agente,s.ubicacionorig,s.fechaalta)

id agente ubicacionorig fechaalta
ej: 1 1000 laplata 12-12-2003
2 1000 laplata 02-04-2005
3 2000 laplata 14-03-2004
4 2000 bsas 15-10-2004
5 2000 bsas 01-02-2005

necesito sacar de esa consulta solo los agentes que que estan en una
ubicacionorig
pero con la fechadealta menor, es decir, del ej.: saldrian el registro 1 ,
3 y 4
el 1 porque la fechadealta del agente 1000 en esa misma ubicacionorig es la
menor, el 3
porque solo el agente 2000 esta en esa ubicacionorig y el 4 porque el agente
2000 en la ubicacionorgi bsas es la fechadealta menor.

Es posible hacer una consulta que arroje ese resultado que pretendo o hay
que hacerlo mediante procedimiento almacenado recorriendo esa tabla
resultante con un cursor y demas?

Desde ya muchas gracias por su tiempo y disculpen si no he sabido expresar
lo que necesito.

Cordiales Saludos
Marcelo
 

Leer las respuestas

#1 Maxi
17/06/2005 - 03:56 | Informe spam
Hola, veamos un simple ejemplo:

==
use NorthWind
Go

Truncate Table #pepe

Create Table #pepe (id int, agente int, ubicacion varchar(20),fecha
datetime)

insert into #pepe values (1,1000,'laplata','20031212')
insert into #pepe values (2,1000,'laplata','20050402')
insert into #pepe values (3,2000,'laplata','20040314')
insert into #pepe values (4,2000,'bsas','20041015')
insert into #pepe values (5,2000,'bsas','20050201')

Select p.id,p.agente,p.ubicacion, p.fecha from #pepe p inner join
(select agente,ubicacion,min(fecha) as fecha
from #pepe group by agente,ubicacion) px on
p.ubicacion = px.ubicacion and
p.agente = px.agente and
p.fecha = px.fecha


Bye




Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

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

"Marcelo Otero" escribió en el mensaje
news:ej%
Hola Gente: espero poder expresar con palabras lo que intento hacer y no
puedo. El tema es el siguiente: mediante una consulta que me devuelve un
resultado con campos idservicio, agente, ubicacionori, fechadealta

(SELECT s.idservicioagente, s.Agente ,s.ubicacionorig, s.FechaAlta
FROM ServiciosAgentes s INNER JOIN Organizaciones o ON
s.UbicacionOrig=o.IDOrganizaciones
ORDER BY s.Agente,s.ubicacionorig,s.fechaalta)

id agente ubicacionorig fechaalta
ej: 1 1000 laplata 12-12-2003
2 1000 laplata 02-04-2005
3 2000 laplata 14-03-2004
4 2000 bsas 15-10-2004
5 2000 bsas 01-02-2005

necesito sacar de esa consulta solo los agentes que que estan en una
ubicacionorig
pero con la fechadealta menor, es decir, del ej.: saldrian el registro 1
, 3 y 4
el 1 porque la fechadealta del agente 1000 en esa misma ubicacionorig es
la menor, el 3
porque solo el agente 2000 esta en esa ubicacionorig y el 4 porque el
agente 2000 en la ubicacionorgi bsas es la fechadealta menor.

Es posible hacer una consulta que arroje ese resultado que pretendo o hay
que hacerlo mediante procedimiento almacenado recorriendo esa tabla
resultante con un cursor y demas?

Desde ya muchas gracias por su tiempo y disculpen si no he sabido expresar
lo que necesito.

Cordiales Saludos
Marcelo


Preguntas similares