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, SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location, aed.strValue AS FullTag, Active.displaypath AS Device 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 AND ae.displaypath NOT LIKE '%System Startup%' AND ae.source NOT LIKE '%System Startup%' GROUP BY ae.id ) AS Active LEFT JOIN ( SELECT eventid, MIN(eventtime) AS eventtime FROM alarm_events WHERE eventtype = 1 GROUP BY eventid ) AS Clear ON Active.eventid = Clear.eventid LEFT JOIN ( SELECT aed.id, aed.strValue FROM alarm_event_data aed WHERE aed.propname = 'myTag' GROUP BY aed.id ) AS aed ON aed.id = Active.id ORDER BY Active.eventtime DESC;