Ayuda con Un Query.

04/06/2007 - 23:06 por Cesar O. Delgado | Informe spam
Saludos, a ver quien me puede dar una mano con un query... Que es lo que
quiero? deseo obtener de una tabla el primer registro de cada cliente
contenido en la tabla de cliente.. Ejemplo: tengo una tabla de CLIENTES y
otra de ACTIVIDADES, deseo obtener el primer registro de cada CLIENTE dentro
de la tabla de ACTIVIDADES cuyo actividad haya sido CAMBIO PASSWORD. teniendo
en cuenta que un cliente puede contener mas de un registro de CAMBIO DE
PASSWORD, en tal caso quiero obtener el primer el primer registro tomando en
cuenta que la fecha de actividad sea la mas vieja.

Estoy claro con lo que quiero, pero no se como realizarlo en SQL. Agregenme
al msn para mayor informacion... cesardelgado73@hotm. Gracias de
antemanos.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
05/06/2007 - 00:10 | Informe spam
Cesar O. Delgado,

Trata:

select
*
from
dbo.clientes as c
inner join
(
select clienteid, min(fecha) as min_fecha
from dbo.actividades
where actividad = 'cambio password'
group by clienteid
) as a
on c.clienteid = a.clienteid
inner join
dbo.actividades as b
on b.clienteid = c.clienteid
and b.actividad = 'cambio password'
and b.fecha = a.min_fecha
go

Si el cliente no tiene una actividad de ese tipo, entonces no sera parte del
resultado. Si quieres incluir al cliente aunque no tenga este tipo de
actividad, entonces usa LEFT JOIN.


AMB

"Cesar O. Delgado" wrote:

Saludos, a ver quien me puede dar una mano con un query... Que es lo que
quiero? deseo obtener de una tabla el primer registro de cada cliente
contenido en la tabla de cliente.. Ejemplo: tengo una tabla de CLIENTES y
otra de ACTIVIDADES, deseo obtener el primer registro de cada CLIENTE dentro
de la tabla de ACTIVIDADES cuyo actividad haya sido CAMBIO PASSWORD. teniendo
en cuenta que un cliente puede contener mas de un registro de CAMBIO DE
PASSWORD, en tal caso quiero obtener el primer el primer registro tomando en
cuenta que la fecha de actividad sea la mas vieja.

Estoy claro con lo que quiero, pero no se como realizarlo en SQL. Agregenme
al msn para mayor informacion... Gracias de
antemanos.


Respuesta Responder a este mensaje
#2 Cesar O. Delgado
05/06/2007 - 16:47 | Informe spam
Alejandro, he probado y me ha resultado el query.

Muchas gracias!.



"Alejandro Mesa" wrote:

Cesar O. Delgado,

Trata:

select
*
from
dbo.clientes as c
inner join
(
select clienteid, min(fecha) as min_fecha
from dbo.actividades
where actividad = 'cambio password'
group by clienteid
) as a
on c.clienteid = a.clienteid
inner join
dbo.actividades as b
on b.clienteid = c.clienteid
and b.actividad = 'cambio password'
and b.fecha = a.min_fecha
go

Si el cliente no tiene una actividad de ese tipo, entonces no sera parte del
resultado. Si quieres incluir al cliente aunque no tenga este tipo de
actividad, entonces usa LEFT JOIN.


AMB

"Cesar O. Delgado" wrote:

> Saludos, a ver quien me puede dar una mano con un query... Que es lo que
> quiero? deseo obtener de una tabla el primer registro de cada cliente
> contenido en la tabla de cliente.. Ejemplo: tengo una tabla de CLIENTES y
> otra de ACTIVIDADES, deseo obtener el primer registro de cada CLIENTE dentro
> de la tabla de ACTIVIDADES cuyo actividad haya sido CAMBIO PASSWORD. teniendo
> en cuenta que un cliente puede contener mas de un registro de CAMBIO DE
> PASSWORD, en tal caso quiero obtener el primer el primer registro tomando en
> cuenta que la fecha de actividad sea la mas vieja.
>
> Estoy claro con lo que quiero, pero no se como realizarlo en SQL. Agregenme
> al msn para mayor informacion... Gracias de
> antemanos.
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida