SELECT Active.id AS ID, Active.eventtime AS StartTimestamp, Clear.eventtime AS EndTimestamp, CONCAT( LPAD(FLOOR(Active.duration_seconds / 3600), 2, '0'), ':', LPAD(FLOOR((Active.duration_seconds % 3600) / 60), 2, '0'), ':', LPAD(Active.duration_seconds % 60, 2, '0') ) AS Duration, CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description, CASE Active.priority WHEN 0 THEN 'Diagnostic' WHEN 1 THEN 'Low' WHEN 2 THEN 'Medium' WHEN 3 THEN 'High' WHEN 4 THEN 'Critical' ELSE 'Unknown' END AS Priority, CONCAT( Active.displaypath, '.HMI.', SUBSTRING_INDEX(aed.strValue, '/', -1) ) AS Tag, Active.displaypath AS MCM FROM ( SELECT ae.id, ae.eventtime, ae.eventid, ae.source, ae.priority, ae.displaypath, TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds FROM alarm_events ae LEFT JOIN alarm_events ae_clear ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1 WHERE ae.eventtype = 0 ) AS Active LEFT JOIN alarm_events Clear ON Active.eventid = Clear.eventid AND Clear.eventtype = 1 LEFT JOIN alarm_event_data aed ON aed.id = Active.id AND aed.propname = 'myTag' ORDER BY Active.eventtime DESC;