No puedo resolver este SELECT

06/05/2004 - 15:15 por Guillermo | Informe spam
Necesito sacar una consulta con el último registro de cada mes, de una tabla
que registra los accesos a un sistema.
En la tabla se graba un registro con el nombre de usuario y la fecha/hora
cada vez que un usuario ingresa.

Lo que necesito es tener un listado histórico de la última vez que ingreso
en cada mes, un usuario a este sistema.

En acces lo puedo hacer con Select LAST(campo)
En SQL Como lo hago

Preguntas similare

Leer las respuestas

#1 Francisco Camina [MS]
06/05/2004 - 15:28 | Informe spam
Hola Guillermo,

Podrías usar una sentencia del tipo SELECT TOP 1 campo_fecha FROM tabla
ORDER BY campo_fecha desc otra sentencia puede ser usando el operador MAX,
por ejemplo SELECT MAX (campo_fecha) from tabla.

Un saludo,

Francisco Camina

"Guillermo" wrote in message
news:
Mostrar la cita
tabla
Mostrar la cita
#2 Maxi
06/05/2004 - 15:29 | Informe spam
Hola, aca lo que podrias hacer es usar la funcion Max sobre la fecha y te
dara la ultima fecha de cada mes, ahora si ademas de esto queres ver mas
datos (todo el registro) deberias de usar subconsultas por ej

Vemos (sin probar)

Select t1.id,tutabla.nombre,datepart(mm,t1.fecha) as mes,(select top 1
campos from tutabla t2
where t2.id = t1.id and datepart(mm,t2.fecha) = datepart(mm,t1.fecha)) as
ultimo
from tutabla t1

=
Esto deberia funcionar :-)





Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Guillermo" escribió en el mensaje
news:
Mostrar la cita
tabla
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.676 / Virus Database: 438 - Release Date: 03/05/2004
#3 José Raúl Fenollar Martínez
06/05/2004 - 15:32 | Informe spam
select cliente,max(fecha) from tabla
group by cliente,month(fecha)

Seria coneveniente tener un campo con el número de mes directamente (podria
ser calculado)
y indice sobre cliente,mes

"Guillermo" escribió en el mensaje
news:
Mostrar la cita
tabla
Mostrar la cita
#4 ulises
06/05/2004 - 19:09 | Informe spam
Puedes probar con :

create table historia ( usuario int, fecha datetime )
go
insert into historia values ( 1, '20040401' )
insert into historia values ( 1, '20040411' )
insert into historia values ( 1, '20040331' )
insert into historia values ( 1, '20040311' )
insert into historia values ( 2, '20040421' )
insert into historia values ( 2, '20040411' )
insert into historia values ( 2, '20040331' )
insert into historia values ( 2, '20040311' )
go
select datepart(year,fecha) as periodo,
datepart(month,fecha) as mes,
max(fecha) as ultimo
from historia
where usuario = 1
group by datepart(year,fecha),datepart(month,fecha)

resultado :

periodo mes ultimo
2004 3 2004-03-31 00:00:00.000
2004 4 2004-04-11 00:00:00.000

(2 row(s) affected)

el inconveniente es que te pueden quedar meses vacíos ya
que el usuario puede que no hay ingresa en un mes
determinado (p.e. vacaciones) pero eso lo puedes manejar
perfectamente en el front-end donde muestres la
información.

Salduos,
Ulises

Mostrar la cita
cada mes, de una tabla
Mostrar la cita
y la fecha/hora
Mostrar la cita
última vez que ingreso
Mostrar la cita
Ads by Google
Search Busqueda sugerida