Hola,
tengo un problema con una base de datos.
Es una tabla (
events) donde se almacenan alarmas. El instante en el que se genera la alarma y el instante en el que deja de estar activa.
Quiero que mi consulta saque la alarma, el instante de generación, y la DURACIÓN que dicha alarma está activa. Si "1" es activa y "0" es inactiva, tendré que calcular la diferencia de instantes entre dos filas de la misma tabla. Pero sólo entre el "0" inmediatamente posterior a un "1", porque la alarma puede activarse y desactivarse muchas veces,
En MySQL uso lo siguiente
select
alertas_UP.objectid,
alertas_UP.clock,
from_unixtime(alertas_UP.clock) as Fecha_Activacion,
(alertas_DOWN.clock - alertas_UP.clock) as Duracion_Segs
from alertas_UP left join
(select * from
events
where events.clock >= alertas_UP.clock
and and value=0
order by alertas_UP.clock desc
limit 1
) alertas_DOWN
on alertas_UP.objectid = alertas_DOWN.objectid
where alertas_UP.objectid = alertas_DOWN.objectid
#and alertas_DOWN.clock >= alertas_UP.clock
#and alertas_DOWN.eventid > alertas_UP.eventid
order by alertas_UP.clock desc
La tabla alertas_UP es una que me he creado con las activaciones. alertas_DOWN es un alias.
MySQL me dice que:
Error Code: 1054. Unknown column 'alertas_UP.clock' in 'where clause'
No tengo ni idea de cuál es el error. Si alguien ve algo raro...
Saludos y gracias!