25/02/2013, 05:40
|
| | Fecha de Ingreso: julio-2008
Mensajes: 6
Antigüedad: 16 años, 3 meses Puntos: 0 | |
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. |