Hola a todos: tengo que hacer unos calculos de un sensor de temperatura, la
consullta funciona bien, es la siguiente:
select fecha, hora,dato=case when (cast(valor as integer) < 125) then
(cast(valor as integer) + ((( valor - cast(valor as integer))*1000)/24)/10)
else (cast(valor as integer) - 255)+ (((( valor - cast(valor as
integer))*1000-255)/24)/10) endfrom datos where id_estacion=3 and tipo_sensor=1
order by fecha desc, hora desc
el problema es cuando quiero sacar promedio por horas, me calcula cualquier cosa
SELECT { fn HOUR(Hora) } AS horas, dato=case when ((cast(avg(valor) as
integer)) < 125) then (cast(avg(valor) as integer) + ((( avg(valor) -
cast(avg(valor) as integer))*1000)/24)/10) else (cast(avg(valor) as integer) -
255)+ (((( avg(valor) - cast(avg(valor) as integer))*1000-255)/24)/10) end,
Fecha FROM Datos WHERE tipo_sensor=1 and id_estacion=3 and fecha = '5/31/2008'
GROUP BY { fn HOUR(Hora) }, Fecha
Los resultados que me muestra son los siguientes:
Hora
Promedio
Fecha
0
0,33
2008-05-31 00:00:00.000
1
-126,47
2008-05-31 00:00:00.000
2
-0,52
2008-05-31 00:00:00.000
3
-0,63
2008-05-31 00:00:00.000
4
-63,52
2008-05-31 00:00:00.000
5
66,77
2008-05-31 00:00:00.000
6
-0,65
2008-05-31 00:00:00.000
7
-0,52
2008-05-31 00:00:00.000
8
3,70
2008-05-31 00:00:00.000
9
3,70
2008-05-31 00:00:00.000
No puedo tener temperatura de -63ยบ por ejemplo..
me di cuenta que ponia el avg a todo, lo cambie pero ahora me exige agregar el
valor al group by y me devuelve cada uno de los valores.
SELECT { fn HOUR(Hora) } AS horas,valor=case when ((cast(avg(valor) as
integer)) < 125) then (avg(cast((valor) as integer) + ((( (valor) -
cast((valor) as integer))*1000)/24)/10)) else (avg(cast((valor) as integer) -
255)+ (((( (valor) - cast((valor) as integer))*1000-255)/24)/10)) end, Fecha
FROM Datos WHERE tipo_sensor=1 and id_estacion=3 and id >168018 and fecha =
'5/31/2008' GROUP BY { fn HOUR(Hora) }, Fecha, valor
Que estoy haciendo mal? como lo solucionarian?
Saludos y gracias
_________________________________________________________________
MSN Noticias
http://noticias.msn.es/comunidad.aspx