Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2013, 05:40
CostaSBD
 
Fecha de Ingreso: julio-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Consulta con WHERE y DATEDIFF complejo

Hola a todos,

Necesito programar una consulta que descarte los registros de acceso de una serie de usuarios, que no superen un margen de tiempo predeterminado (por ej. 2 segundos). Es decir, si cada registro se ha realizado por un usuario en una fecha/hora determinada, no quiero obtener aquellos que su fecha/hora no superen el margen establecido en relación a la fecha/hora del registro anterior. Creo que con un ejemplo se ve más claro.

Ejemplo:

LogIndex, IDUsuario, Fecha/Hora

1, 01551, 20/02/2013 17:41:45.000
2, 01551, 20/02/2013 17:41:45.900 *
3, 01551, 20/02/2013 17:41:46.150 *
4, 01551, 20/02/2013 20:41:47.000

5, 01552, 20/02/2013 17:42:45.000
6, 01552, 20/02/2013 17:42:46.000 *
7, 01552, 20/02/2013 19:45:45.000

*: Registros a descartar porque a fecha/hora no supera el margen de 2 segundos respecto al registro anterior. En el primer caso debería descartar dos registros porque los dos no superan este margen.


Aquí tenéis el código que crea la tabla temporal y añade los registros anteriores para poder hacer pruebas:

CREATE TABLE #TEMP(LogIndex int, UserID nvarchar(10), logtime datetime)

insert into #TEMP select 1, '01551', '20/02/2013 17:41:45.000'
insert into #TEMP select 2, '01551', '20/02/2013 17:41:45.900'
insert into #TEMP select 3, '01551', '20/02/2013 17:41:46.150'
insert into #TEMP select 4, '01551', '20/02/2013 20:41:47.000'
insert into #TEMP select 5, '01552', '20/02/2013 17:42:45.000'
insert into #TEMP select 6, '01552', '20/02/2013 17:42:46.000'
insert into #TEMP select 7, '01552', '20/02/2013 19:45:45.000'

select * from #TEMP

DROP TABLE #temp

Gracias de antemano.