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

Responder a