BNA8/.resources/ed3469358a434bca29cfe87cd2ecc3729bcb18eef430dbb8828eadcfff19a531

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;