Ahora entendí,
Se podría resolver tranquilamente con una vista, obviando el trigger.
Create una tabla de prueba, Mediciones por ejemplo (Id Int, Fecha
smalldatetime, Valor int)
Completala con algunos datos y probá una query de este estilo. No es
necesario tener 2 campos, Fecha y Hora por separado, en uno solo podes
almacenar ambas cosas. Creo te arroja el resultado que vos necesitas. No sé
si es lo mejor en performance, sólo una idea para destrabarte.
SELECT M1.Fecha, M2.Fecha AS Fecha2, DifMinutos = DATEDIFF(minute,
M2.Fecha, M1.Fecha), DifValor = M2.Valor - M1.Valor
FROM Mediciones AS M1 INNER JOIN
Mediciones AS M2 ON M2.Fecha =
(SELECT TOP 1 Fecha FROM Mediciones WHERE Fecha <
M1.Fecha ORDER BY Fecha DESC)
Saludos. Mauricio.
On Nov 21, 2007 10:19 AM, Carina V. Barca <[EMAIL PROTECTED]> wrote:
> En realidad lo que necesito es la diferencia de los valores para armar un
> grafico.
> Por ejemplo si tengo estos datos
>
> id fecha hora valor
> 1 01/11/2007 12:00 1.5
> 2 01/11/2007 12:15 1.75
> 3 01/11/2007 12:30 2
> 4 01/11/2007 12:45 1.9
> 5 01/11/2007 13:00 1.6
>
> el resultado seria mas o menos
>
> fecha hora valor
> 01/11/2007 12:00 0.25
> 01/11/2007 12:15 0.25
> 01/11/2007 12:30 -0.1
> 01/11/2007 12:45 -0.3
>
> Es una fila menos porque el primer valor no tengo con quien restarlo, si
> ves la segunda tabla el valor de las 12 es la diferencia entre el valor de
> las 12:00 y de las 12:15 y asi sucesivamente.
> Espero que se entienda... gracias
> Saludos....
> Carina
>
> ------------------------------
> Date: Wed, 21 Nov 2007 09:56:31 -0300
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: [dbms] Diferencias entre valores
>
> Para calcular diferencias entre fecha podes usar DATEDIF
>
> http://msdn2.microsoft.com/en-us/library/aa258269(sql.80).aspx<http://msdn2.microsoft.com/en-us/library/aa258269%28sql.80%29.aspx>
>
> La diferencia de tiempo la calculás sobre la última lectura? Es por eso
> que si agregas una a mano te queda inconsistente?
>
> Para evitar el trigger podrías generar una vista, con un campo calculado
> "Valor", luego para obtener los datos haces SELECT * FROM Vista ORDER BY
> Valor
>
> Si necesitas ayuda para armar la consulta mandá algunas filas de ejemplo
> con el resultado que esperás.
>
> Saludos.
>
>
>
> On Nov 21, 2007 9:36 AM, Carina V. Barca <[EMAIL PROTECTED]> wrote:
>
>
> Mauricio, gracias por contestar, era solo para que se entienda, lo que yo
> necesito calcular es la diferencia entre 2 valores ordenados por fecha y
> hora, recibo datos cada 15 minutos pero a veces me pasa que se cae el
> sistema y me quedo sin una lectura entonces por ejemplo tengo lecturas a la
> 12 y despues 12:30 con el trigger calculo la diferente entre las 12 y las
> 12:30 pero cuando agrego a mano el valor de las 12:15 ahi se me arma lio y
> para evitar eso queria saber si se podia, a traves de una consulta calcular
> la diferencia entre esos valores sin necesidad de usar el trigger.
> Espero haber aclarado tu duda y de nuevo gracias por contestar.
>
> Saludos
> Carina
>
> ------------------------------
>
> Date: Wed, 21 Nov 2007 09:20:09 -0300
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: [dbms] Diferencias entre valores
>
>
> Carina,
>
> No entendí cual es el cálculo que hacés entre hora y valor? Por qué en vez
> de 5 filas en el resultado esperás 4?
>
> Saludos. Mauricio.
>
>
>
>
> On Nov 20, 2007 1:55 PM, Carina V. Barca < [EMAIL PROTECTED]> wrote:
>
> Hola a todos, necesito sacar las diferencias entre 2 valores de una tabla
> ordenada por fecha y hora pero no se me ocurre como,
>
> Tengo la siguiente tabla
>
> id fecha hora valor
> 1 01/11/2007 12:00 1.5
> 2 01/11/2007 12:15 1.75
> 3 01/11/2007 12:30 2
> 4 01/11/2007 12:45 1.9
> 5 01/11/2007 13:00 1.6
>
>
> y tendria que recibir le siguiente resultado
>
> fecha hora valor
> 01/11/2007 12:00 0.25
> 01/11/2007 12:15 0.25
> 01/11/2007 12:30 -0.1
> 01/11/2007 12:45 -0.3
>
> Es decir de una tabla necesito sacar la diferenciaentre los dos valores,
> se puede? en este momento lo hago con un trigger, pero me paso que cuando me
> falto un valor en el medio y y lo tengo que agregar tengo que modificar las
> diferencias a mano.
>
> Desde ya muchas gracias...
> Saludos
>
>
>
>
> ------------------------------
> Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para
> estar a la última MSN
> Newsletters<http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http://mail.live.com>
>
>
>
> ------------------------------
> Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para
> estar a la última MSN
> Newsletters<http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http://mail.live.com>
>
>
>
> ------------------------------
> Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para
> estar a la última MSN
> Newsletters<http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http%3a%2f%2fmail.live.com>
>