Te paso un ejemplo, vos tendrias que adaptarlo a tu caso. En el ejemplo el id es secuencial, no entiendo el tipo de datos del id que manejas.
Aca genero con un 50% de probabilidad una demora de 5 segundos entre inserts de una tabla (modelado del fallo de comunicacion que tenes) Al final, hay una consulta que te dice el tiempo transcurrido entre inserts. IF object_id( 'tempdb.dbo.#Prueba' ) IS NOT NULL DROP TABLE #Prueba CREATE TABLE #Prueba( id int IDENTITY(1,1) PRIMARY key, FechaHora datetime DEFAULT ( getdate() ) ) DECLARE @i int; SET @i = 1 WHILE ( @i <= 30 ) BEGIN IF rand()<.5 WAITFOR delay '00:00:05' INSERT #Prueba( FechaHora ) VALUES (DEFAULT) SET @i = @i + 1 END SELECT 'Tiempo transcurrido entre ' + cast(sig.id AS varchar(10)) + ' y ' + cast( ant.id AS varchar(10)), dif=datediff( s, ant.FechaHora, sig.FechaHora ) FROM #Prueba ant JOIN #Prueba sig ON ant.id = sig.id - 1 A mi me dio 19 delays sobre 30 es decir, un 63 porciento de delays. Saludos Daniel -----Original Message----- From: "Carina V. Barca" <[EMAIL PROTECTED]> To: "Daniel Aisenberg" <[EMAIL PROTECTED]> Date: Wed, 30 Jul 2008 20:47:42 +0000 Subject: [dbms] Consulta - Datos faltantes Hola. si, es un ejemplo resumido, los datos serian de la siguiente manera la tabla se llama datos id id_estacion id_sensor tipo_sensor fecha hora valor ----------- ----------- --------- ----------- ------------------------------------------------------ 113353 1 1 1 2008-02-06 00:00:00.000 1900-01-01 16:00:00.000 0.0 113355 1 3 3 2008-02-06 00:00:00.000 1900-01-01 16:00:00.000 1154.1931 113362 1 1 1 2008-02-06 00:00:00.000 1900-01-01 16:45:00.000 0.0 113364 1 3 3 2008-02-06 00:00:00.000 1900-01-01 16:45:00.000 1154.2008000000001 113356 1 1 1 2008-02-06 00:00:00.000 1900-01-01 16:15:00.000 0.0 113358 1 3 3 2008-02-06 00:00:00.000 1900-01-01 16:15:00.000 1154.1982 113359 1 1 1 2008-02-06 00:00:00.000 1900-01-01 16:30:00.000 0.0 113361 1 3 3 2008-02-06 00:00:00.000 1900-01-01 16:30:00.000 1154.2008000000001 Saludos y gracias por responder... Carina Date: Wed, 30 Jul 2008 17:16:19 -0300 From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: [dbms] Consulta - Datos faltantes Hola, la tala que pasaste es un ejemplo resumido?, tenes alguna clave primaria, algun campo Identity? Si no podes hacer las tomas posibles, podes hacer un self join para calcular la "datediff" entre un registro y el siguiente. Si es mayor que 15 minutos, estaria faltando una lectura. Saludos -----Original Message----- From: "Carina V. Barca" <[EMAIL PROTECTED]> To: "Daniel Aisenberg" <[EMAIL PROTECTED]> Date: Wed, 30 Jul 2008 13:45:10 +0000 Subject: [dbms] Consulta - Datos faltantes Gracias Maxi, voy a intentar a ver que sale.. Saludos From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: [dbms] Consulta - Datos faltantes Date: Wed, 30 Jul 2008 10:07:28 -0300 Hola deberias tener primero una tabla con las tomas posibles, esa tabla la deberias popular tu de alguna manera, si sabes que son lecturas cada 15 min entonces es bastante simple. Luego haces un left join de esa tabla vs las lecturas y mostras los nulos, esto te mostrara los faltantes Maximiliano Damian Accotto Microsoft MVP en SQLServer SQL Total Consulting Bogota 3631 P3B 1407 Buenos Aires-Argentina Movil: (011)-15-5868-5599 Desde el exterior: (+54-911)-5868-5599 [EMAIL PROTECTED] De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carina V. Barca Enviado el: lunes, 28 de julio de 2008 10:38 a.m. Para: Maxi Asunto: [dbms] Consulta - Datos faltantes Hola a todos: tengo una aplicacion que guarda datos cada 15 minutos, pero suele suceder que por error de comunicacion o interferencias, se pierde alguna lectura. El problema es ajeno a la base de datos. Lo que yo quiero es hacer una consulta que me devuelva todos los datos de una hora, que tienen que ser 4 y que si falta alguna me muestre el renglon con la hora faltante para poder agregar ese dato. Por ejemplo: fecha hora estacion sensor valor 2008-06-02 00:00:00.000 1900-01-01 16:00:00.000 3 4 2025.0 2008-06-02 00:00:00.000 1900-01-01 16:30:00.000 3 4 2051.0 A esta hora me faltan 2 lecturas a las 16:15 y 16:45, el resultado seria... fecha hora estacion sensor valor 2008-06-02 00:00:00.000 1900-01-01 16:00:00.000 3 4 2025.0 2008-06-02 00:00:00.000 1900-01-01 16:30:00.000 3 4 2051.0 2008-06-02 00:00:00.000 1900-01-01 16:15:00.000 3 4 2008-06-02 00:00:00.000 1900-01-01 16:45:00.000 3 4 Muchas gracias. Saludos Carina Barca ¡Lo mejor de MSN y Windows Live en tu móvil! Hotmail, Messenger, Spaces. Pruébalo ya y disfruta de todas sus ventajas donde quieras ¡Lo mejor de MSN y Windows Live en tu móvil! ¡Lo mejor de MSN y Windows Live en tu móvil! Hotmail, Messenger, Spaces. Pruébalo ya y disfruta de todas sus ventajas donde quieras ¡Lo mejor de MSN y Windows Live en tu móvil! ¡Sé solidario, haz clic! Por cada búsqueda que hagas desde Windows Live Search, estarás ayudando a los que más lo necesitan ¡Sé solidario, haz clic!
