51 lines
1.8 KiB
SQL

SELECT
base.Total_Jam,
base.Inbound_jam,
base.Sorter_jam,
base.Startstamp,
base.Endtstamp,
1 AS Total_perc,
base.Inbound_jam / NULLIF(base.Total_Jam,0) AS Inbound_perc,
base.Sorter_jam / NULLIF(base.Total_Jam,0) AS Sorter_perc
FROM (
SELECT
MIN(a.eventtime) AS Startstamp,
MAX(COALESCE(c.eventtime, a.eventtime)) AS Endtstamp,
SUM(a.category = 'Inbound_jam') AS Inbound_jam,
SUM(a.category = 'Sorter_jam') AS Sorter_jam,
SUM(a.category IN ('Inbound_jam','Sorter_jam')) AS Total_Jam
FROM (
SELECT
ae.id,
ae.eventtime,
ae.eventid,
ae.displaypath AS device,
m.category
FROM alarm_events ae
JOIN (
SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL
SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL
SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_12_TPE1', 'Sorter_jam'
) AS m
ON ae.displaypath = m.device
WHERE ae.eventtype = 0
AND ae.eventtime BETWEEN :starttime AND :endtime
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS a
LEFT JOIN (
SELECT eventid, MIN(eventtime) AS eventtime
FROM alarm_events
WHERE eventtype = 1
GROUP BY eventid
) AS c
ON a.eventid = c.eventid
) AS base;