41 lines
1.9 KiB
Plaintext
41 lines
1.9 KiB
Plaintext
-- Step 1: generate dates using a numbers table (0 to 17 for 15 past + today + 2 future)
|
|
SELECT
|
|
DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) AS jam_day,
|
|
COALESCE(SUM(CASE WHEN a.category = 'Inbound_jam' THEN 1 ELSE 0 END), 0) AS Inbound_jam,
|
|
COALESCE(SUM(CASE WHEN a.category = 'Sorter_jam' THEN 1 ELSE 0 END), 0) AS Sorter_jam
|
|
FROM (
|
|
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
|
|
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
|
|
UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11
|
|
UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15
|
|
UNION ALL SELECT 16 UNION ALL SELECT 17
|
|
) AS n
|
|
LEFT JOIN (
|
|
SELECT
|
|
DATE(ae.eventtime) AS event_day,
|
|
CASE
|
|
WHEN m.category IS NOT NULL THEN m.category
|
|
ELSE 'Unknown'
|
|
END AS 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 DATE_SUB(CURDATE(), INTERVAL 15 DAY)
|
|
AND DATE_ADD(CURDATE(), INTERVAL 2 DAY)
|
|
AND ae.displaypath NOT LIKE '%System Startup%'
|
|
AND ae.source NOT LIKE '%System Startup%'
|
|
) AS a ON DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) = a.event_day
|
|
GROUP BY jam_day
|
|
ORDER BY jam_day ASC;
|