modified gatewway script, updated queries

This commit is contained in:
Salijoghli 2025-12-01 16:33:11 +04:00
parent d702f52f8e
commit f27e099edd
70 changed files with 680 additions and 4116 deletions

View File

@ -1,14 +0,0 @@
-- Hourly Induct Graph Query (Rate)
-- Shows every hour in detail for graphing
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
COUNT(*) AS Total
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY DATE(t_stamp) ASC, HOUR(t_stamp) ASC;

View File

@ -1,209 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sScanner_Name AS `Scanner Name`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_bad_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Bad Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_comm_fault), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Comm Faults`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_good_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Good Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_items), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Multi Items`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Multi Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_data), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total No Data`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total No Reads`
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03aa' AS `Scanner Name`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Bad Reads`,
'0%' AS `Total Comm Faults`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Good Reads`,
'0%' AS `Total Multi Items`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Multi Reads`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Data`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Reads`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,60 +0,0 @@
SELECT
'S03' AS Sorter,
DATE_FORMAT(:starttime, '%Y-%m-%d %H:%i') AS start_time,
DATE_FORMAT(:endtime, '%Y-%m-%d %H:%i') AS end_time,
'S03aa' AS sScanner_Name,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_bad_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total_bad_reads,
0 AS total_comm_faults,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_good_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total_good_reads,
0 AS total_multi_items,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_multi_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total_multi_reads,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_no_data, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total_no_data,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_no_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total_no_reads,
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
END AS total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS total_bad_reads,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS total_good_reads,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS total_multi_reads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS total_no_data,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS total_no_reads,
COUNT(*) AS total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
) AS sorter_total ON 1 = 1;

View File

@ -1,63 +0,0 @@
SELECT
roundtime AS `Round Time`,
sScanner_Name AS `Scanner Name`,
COALESCE(total_bad_reads, 0) AS `Total Bad Reads`,
COALESCE(total_comm_faults, 0) AS `Total Comm Faults`,
COALESCE(total_good_reads, 0) AS `Total Good Reads`,
COALESCE(total_multi_items, 0) AS `Total Multi Items`,
COALESCE(total_multi_reads, 0) AS `Total Multi Reads`,
COALESCE(total_no_data, 0) AS `Total No Data`,
COALESCE(total_no_reads, 0) AS `Total No Reads`,
COALESCE(total_bad_reads, 0) +
COALESCE(total_comm_faults, 0) +
COALESCE(total_good_reads, 0) +
COALESCE(total_multi_items, 0) +
COALESCE(total_multi_reads, 0) +
COALESCE(total_no_data, 0) +
COALESCE(total_no_reads, 0) AS `Total`
FROM (
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(t_stamp) /
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) *
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) AS roundtime,
sScanner_Name,
SUM(diScanner_bad_reads) AS total_bad_reads,
SUM(diScanner_comm_fault) AS total_comm_faults,
SUM(diScanner_good_reads) AS total_good_reads,
SUM(diScanner_multi_items) AS total_multi_items,
SUM(diScanner_multi_reads) AS total_multi_reads,
SUM(diScanner_no_data) AS total_no_data,
SUM(diScanner_no_reads) AS total_no_reads
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY roundtime, sScanner_Name
UNION ALL
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(t_stamp) /
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) *
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) AS roundtime,
'S03aa' AS sScanner_Name,
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS total_bad_reads,
0 AS total_comm_faults,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS total_good_reads,
0 AS total_multi_items,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS total_multi_reads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS total_no_data,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS total_no_reads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY roundtime
ORDER BY roundtime ASC
) basa;

View File

@ -5,9 +5,7 @@ SELECT
'S03aa' AS sScanner_Name,
COALESCE(sorter_total.total_bad_reads, 0) AS total_bad_reads,
0 AS total_comm_faults,
COALESCE(sorter_total.total_good_reads, 0) AS total_good_reads,
0 AS total_multi_items,
COALESCE(sorter_total.total_multi_reads, 0) AS total_multi_reads,
COALESCE(sorter_total.total_no_data, 0) AS total_no_data,
COALESCE(sorter_total.total_no_reads, 0) AS total_no_reads,

View File

@ -1,229 +0,0 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
COALESCE(data.BadReads, '0%') AS BadReads,
COALESCE(data.CommFaults, '0%') AS CommFaults,
COALESCE(data.GoodReads, '0%') AS GoodReads,
COALESCE(data.MultiItems, '0%') AS MultiItems,
COALESCE(data.MultiReads, '0%') AS MultiReads,
COALESCE(data.NoData, '0%') AS NoData,
COALESCE(data.NoReads, '0%') AS NoReads,
COALESCE(data.Total, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sScanner_Name,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_bad_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS BadReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_comm_fault), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS CommFaults,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_good_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS GoodReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_items), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS MultiItems,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS MultiReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_data), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS NoData,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS NoReads,
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0) AS Total
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS BadReads,
'0%' AS CommFaults,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS GoodReads,
'0%' AS MultiItems,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS MultiReads,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS NoData,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS NoReads,
COUNT(*) AS Total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,59 +0,0 @@
-- Hourly Sorter Details Rate Query (Table Display)
-- Shows every hour in detail with all sorter statistics as rates (items per hour)
-- Rate calculation matches SorterDetails_Rate.sql formula
SELECT
CONCAT(DATE(Startstamp), ' ', LPAD(HOUR(Startstamp), 2, '0'), ':00') AS Startstamp,
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
CONCAT(ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS success_rate,
CONCAT(ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unknown_rate,
CONCAT(ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unexpected_container_rate,
CONCAT(ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS tracking_error_rate,
CONCAT(ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS gap_error_rate,
CONCAT(ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_full_rate,
CONCAT(ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_non_operational_rate,
CONCAT(ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS invalid_destination_rate,
CONCAT(ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_disabled_rate,
CONCAT(ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS throughput_limit_rate,
CONCAT(ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS failed_to_divert_rate,
CONCAT(ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS no_destination_received_rate,
CONCAT(ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS lost_container_rate,
CONCAT(ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS dimension_error_rate,
CONCAT(ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS weight_error_rate,
CONCAT(ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS container_utilization_rate,
CONCAT(ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unable_to_divert_rate,
CONCAT(ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_not_attempted_rate,
CONCAT(ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS scan_error_rate
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -5,9 +5,7 @@ SELECT
'S03aa' AS sScanner_Name,
CONCAT(COALESCE(sorter_total.total_bad_reads, 0), '%') AS total_bad_reads,
'0%' AS total_comm_faults,
CONCAT(COALESCE(sorter_total.total_good_reads, 0), '%') AS total_good_reads,
'0%' AS total_multi_items,
CONCAT(COALESCE(sorter_total.total_multi_reads, 0), '%') AS total_multi_reads,
CONCAT(COALESCE(sorter_total.total_no_data, 0), '%') AS total_no_data,
CONCAT(COALESCE(sorter_total.total_no_reads, 0), '%') AS total_no_reads,
@ -17,28 +15,29 @@ FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15)) * 100.0) / COUNT(*), 2)
END AS total_bad_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 0) * 100.0) / COUNT(*), 2)
END AS total_good_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 10) * 100.0) / COUNT(*), 2)
END AS total_multi_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 9) * 100.0) / COUNT(*), 2)
END AS total_no_data,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 8) * 100.0) / COUNT(*), 2)
END AS total_no_reads,
COUNT(*) AS total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
) AS sorter_total ON 1=1;
) AS sorter_total ON 1 = 1;

View File

@ -1,35 +0,0 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(data.sInduction_Name, 'N/A') AS sInduction_Name,
COALESCE(data.SingleCarrier_count, 0) AS SingleCarrier_count,
COALESCE(data.DoubleCarrier_count, 0) AS DoubleCarrier_count,
COALESCE(data.SingleCarrier_count, 0) + COALESCE(data.DoubleCarrier_count, 0) AS Total_count
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sInduction_Name,
SUM(diTotal_Single_Carrier) AS SingleCarrier_count,
SUM(diTotal_Double_Carrier) AS DoubleCarrier_count
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03' AS sInduction_Name,
COUNT(*) AS SingleCarrier_count,
0 AS DoubleCarrier_count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -1,62 +0,0 @@
-- Hourly Lane Graph Query (Rate per hour)
-- Shows every hour in detail with all lane statistics as rates (items per hour) for graphing
-- Rate calculation matches LaneDetails_Rate.sql formula
-- Filtered by specific lane parameter
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
ROUND(total_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Total,
ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Sorted,
ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unknown,
ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unexpected,
ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS TrackingError,
ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS GapError,
ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFull,
ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFault,
ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationInvalid,
ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationDisabled,
ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ThroughputLimit,
ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DivertFail,
ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNone,
ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Lost,
ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DimensionError,
ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS WeightError,
ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ContainerUtilization,
ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS UnableToDivert,
ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNotAttempted,
ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ScanError
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS total_count,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE DEST_REQ = :lane AND t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,14 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03' AS `Induction Name`,
'100%' AS `Total Single Carrier`,
'0%' AS `Total Double Carrier`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,50 +0,0 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(data.sInduction_Name, 'N/A') AS sInduction_Name,
COALESCE(data.SingleCarrier_percent, '0%') AS SingleCarrier_percent,
COALESCE(data.DoubleCarrier_percent, '0%') AS DoubleCarrier_percent,
COALESCE(data.Total_count, 0) AS Total_count
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sInduction_Name,
CONCAT(
CASE
WHEN (COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diTotal_Single_Carrier), 0) * 100.0) / (
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)
), 2)
END, '%'
) AS SingleCarrier_percent,
CONCAT(
CASE
WHEN (COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diTotal_Double_Carrier), 0) * 100.0) / (
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)
), 2)
END, '%'
) AS DoubleCarrier_percent,
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0) AS Total_count
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03' AS sInduction_Name,
'100%' AS SingleCarrier_percent,
'0%' AS DoubleCarrier_percent,
COUNT(*) AS Total_count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,79 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
data.BadReads,
data.GoodReads,
data.MultiReads,
data.NoData,
data.NoReads,
COALESCE(data.Total, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
COUNT(*) AS Total,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS BadReads,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS GoodReads,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS MultiReads,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS NoData,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS NoReads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -0,0 +1,53 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS `Hour`,
'S03aa' AS `Scanner Name`,
/* ---- PERCENTAGES ---- */
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Bad Reads`,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Good Reads`,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Multi Reads`,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Data`,
CONCAT(
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Reads`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -0,0 +1,74 @@
SELECT
'S03' AS Sorter,
DATE_FORMAT(:starttime, '%Y-%m-%d %H:%i') AS start_time,
DATE_FORMAT(:endtime, '%Y-%m-%d %H:%i') AS end_time,
'S03aa' AS sScanner_Name,
-- Bad Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total_bad_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_bad_reads,
-- Good Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total_good_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_good_reads,
-- Multi Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total_multi_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_multi_reads,
-- No Data (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total_no_data, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_no_data,
-- No Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total_no_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_no_reads,
-- Total Items (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(
COALESCE(sorter_total.total, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
SUM(adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15)) AS total_bad_reads,
SUM(adiSort_Code_0 = 0) AS total_good_reads,
SUM(adiSort_Code_0 = 10) AS total_multi_reads,
SUM(adiSort_Code_0 = 9) AS total_no_data,
SUM(adiSort_Code_0 = 8) AS total_no_reads,
COUNT(*) AS total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
) AS sorter_total ON 1 = 1;

View File

@ -0,0 +1,29 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS `Hour`,
'S03aa' AS `Scanner Name`,
-- REAL SCAN STATS FROM item_data
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS `Total Bad Reads`,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS `Total Good Reads`,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS `Total Multi Reads`,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS `Total No Data`,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS `Total No Reads`,
COUNT(*) AS `Total`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -0,0 +1,52 @@
SELECT
roundtime AS `Round Time`,
sScanner_Name AS `Scanner Name`,
COALESCE(total_bad_reads, 0) AS `Total Bad Reads`,
COALESCE(total_good_reads, 0) AS `Total Good Reads`,
COALESCE(total_multi_reads, 0) AS `Total Multi Reads`,
COALESCE(total_no_data, 0) AS `Total No Data`,
COALESCE(total_no_reads, 0) AS `Total No Reads`,
(
COALESCE(total_bad_reads, 0) +
COALESCE(total_good_reads, 0) +
COALESCE(total_multi_reads, 0) +
COALESCE(total_no_data, 0) +
COALESCE(total_no_reads, 0)
) AS `Total`
FROM (
SELECT
FROM_UNIXTIME(
FLOOR(
UNIX_TIMESTAMP(t_stamp) /
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) *
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) AS roundtime,
'S03aa' AS sScanner_Name,
-- BAD READS (anything not success/no_read/no_code/multi)
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS total_bad_reads,
-- GOOD reads
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS total_good_reads,
-- MULTI READS
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS total_multi_reads,
-- NO DATA
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS total_no_data,
-- NO READS
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS total_no_reads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY roundtime
) AS basa
ORDER BY `Round Time` ASC;

View File

@ -0,0 +1,28 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sInduction_Name, 'N/A') AS sInduction_Name,
COALESCE(data.Count, 0) AS Count
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03' AS sInduction_Name,
COUNT(*) AS Count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -0,0 +1,47 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
COALESCE(data.BadReads, 0) AS BadReads,
COALESCE(data.GoodReads, 0) AS GoodReads,
COALESCE(data.MultiReads, 0) AS MultiReads,
COALESCE(data.NoData, 0) AS NoData,
COALESCE(data.NoReads, 0) AS NoReads,
COALESCE(data.Total, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
-- Real counts from item_data
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS BadReads,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS GoodReads,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS MultiReads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS NoData,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS NoReads,
-- Total scans in this bucket
COUNT(*) AS Total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -1,56 +0,0 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
COALESCE(data.BadReads, 0) AS BadReads,
COALESCE(data.CommFaults, 0) AS CommFaults,
COALESCE(data.GoodReads, 0) AS GoodReads,
COALESCE(data.MultiItems, 0) AS MultiItems,
COALESCE(data.MultiReads, 0) AS MultiReads,
COALESCE(data.NoData, 0) AS NoData,
COALESCE(data.NoReads, 0) AS NoReads,
COALESCE(data.BadReads, 0) +
COALESCE(data.CommFaults, 0) +
COALESCE(data.GoodReads, 0) +
COALESCE(data.MultiItems, 0) +
COALESCE(data.MultiReads, 0) +
COALESCE(data.NoData, 0) +
COALESCE(data.NoReads, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sScanner_Name,
SUM(diScanner_bad_reads) AS BadReads,
SUM(diScanner_comm_fault) AS CommFaults,
SUM(diScanner_good_reads) AS GoodReads,
SUM(diScanner_multi_items) AS MultiItems,
SUM(diScanner_multi_reads) AS MultiReads,
SUM(diScanner_no_data) AS NoData,
SUM(diScanner_no_reads) AS NoReads
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS BadReads,
0 AS CommFaults,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS GoodReads,
0 AS MultiItems,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS MultiReads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS NoData,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS NoReads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -0,0 +1,24 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS StartTimestamp,
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS Hour,
'S03' AS sInduction_Name,
COUNT(*) AS Total_count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY StartTimestamp ASC;

View File

@ -1,59 +0,0 @@
-- Hourly Sorter Details Graph Query (Rate)
-- Shows every hour in detail for graphing with all sorter statistics as rates (items per hour)
-- Rate calculation matches SorterDetails_Rate.sql formula
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
ROUND(inducted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Inducted,
ROUND(sorted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Sorted,
ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unknown,
ROUND(unexpected_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unexpected,
ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS TrackingError,
ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS GapError,
ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFull,
ROUND(destination_fault_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFault,
ROUND(destination_invalid_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationInvalid,
ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationDisabled,
ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ThroughputLimit,
ROUND(divert_fail_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DivertFail,
ROUND(destination_none_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNone,
ROUND(lost_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Lost,
ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DimensionError,
ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS WeightError,
ROUND(container_util_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ContainerUtilization,
ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS UnableToDivert,
ROUND(dest_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNotAttempted,
ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ScanError
FROM (
SELECT
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS inducted_count,
SUM(DivertStatus = 0) AS sorted_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_fault_count,
SUM(DivertStatus = 7) AS destination_invalid_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS divert_fail_count,
SUM(DivertStatus = 16) AS destination_none_count,
SUM(DivertStatus = 17) AS lost_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_util_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS dest_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,29 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sInduction_Name AS `Induction Name`,
COALESCE(SUM(diTotal_Single_Carrier), 0) AS `Total Single Carrier`,
COALESCE(SUM(diTotal_Double_Carrier), 0) AS `Total Double Carrier`,
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0) AS `Total`
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03' AS `Induction Name`,
COUNT(*) AS `Total Single Carrier`,
0 AS `Total Double Carrier`,
COUNT(*) AS `Total`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,45 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sScanner_Name AS `Scanner Name`,
COALESCE(SUM(diScanner_bad_reads), 0) AS `Total Bad Reads`,
COALESCE(SUM(diScanner_comm_fault), 0) AS `Total Comm Faults`,
COALESCE(SUM(diScanner_good_reads), 0) AS `Total Good Reads`,
COALESCE(SUM(diScanner_multi_items), 0) AS `Total Multi Items`,
COALESCE(SUM(diScanner_multi_reads), 0) AS `Total Multi Reads`,
COALESCE(SUM(diScanner_no_data), 0) AS `Total No Data`,
COALESCE(SUM(diScanner_no_reads), 0) AS `Total No Reads`,
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0) AS `Total`
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03aa' AS `Scanner Name`,
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS `Total Bad Reads`,
0 AS `Total Comm Faults`,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS `Total Good Reads`,
0 AS `Total Multi Items`,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS `Total Multi Reads`,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS `Total No Data`,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS `Total No Reads`,
COUNT(*) AS `Total`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,62 +0,0 @@
-- Hourly Lane Details Rate Query (Table Display)
-- Shows every hour in detail with all lane statistics as rates (items per hour)
-- Rate calculation matches LaneDetails_Rate.sql formula
-- Filtered by specific lane parameter
SELECT
CONCAT(DATE(Startstamp), ' ', LPAD(HOUR(Startstamp), 2, '0'), ':00') AS StartTimestamp,
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
CONCAT(ROUND(total_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS total_rate,
CONCAT(ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS success_rate,
CONCAT(ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unknown_rate,
CONCAT(ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unexpected_container_rate,
CONCAT(ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS tracking_error_rate,
CONCAT(ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS gap_error_rate,
CONCAT(ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_full_rate,
CONCAT(ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_non_operational_rate,
CONCAT(ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS invalid_destination_rate,
CONCAT(ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_disabled_rate,
CONCAT(ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS throughput_limit_rate,
CONCAT(ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS failed_to_divert_rate,
CONCAT(ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS no_destination_received_rate,
CONCAT(ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS lost_container_rate,
CONCAT(ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS dimension_error_rate,
CONCAT(ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS weight_error_rate,
CONCAT(ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS container_utilization_rate,
CONCAT(ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unable_to_divert_rate,
CONCAT(ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_not_attempted_rate,
CONCAT(ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS scan_error_rate
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS total_count,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE DEST_REQ = :lane AND t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-25T10:35:05Z"
"timestamp": "2025-12-01T12:31:54Z"
},
"lastModificationSignature": "84e845324e74392edc232768d97dc551b2425b6f2f5c96d56051b98eb12cb93b"
"lastModificationSignature": "66448e62c25ca2b4f4effc70f71830fd61d812cf777e1fb1c766aaca1610fdb8"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -9,8 +9,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-20T12:26:12Z"
"timestamp": "2025-12-01T09:40:22Z"
},
"lastModificationSignature": "8337f716108011f6dcb21b0f9f2ddfdef0eb96f5887b9ce358fb1c380ca4e2ee"
"lastModificationSignature": "1001966be8615a467cfcc11efeab3990eefdbf6fa56f9bd0f92fcecee0376913"
}
}

View File

@ -1,29 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sInduction_Name AS `Induction Name`,
COALESCE(SUM(diTotal_Single_Carrier), 0) AS `Total Single Carrier`,
COALESCE(SUM(diTotal_Double_Carrier), 0) AS `Total Double Carrier`,
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0) AS `Total`
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03' AS `Induction Name`,
COUNT(*) AS `Total Single Carrier`,
0 AS `Total Double Carrier`,
COUNT(*) AS `Total`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,51 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "b76767bd2f83d72b541a6bdbaf87459a32eb3e7915f46f807e57fb6f7a88eb28",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T16:53:50Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "inductionname",
"sqlType": 7
}
]
}
}

View File

@ -1,35 +1,28 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sInduction_Name, 'N/A') AS sInduction_Name,
COALESCE(data.SingleCarrier_count, 0) AS SingleCarrier_count,
COALESCE(data.DoubleCarrier_count, 0) AS DoubleCarrier_count,
COALESCE(data.SingleCarrier_count, 0) + COALESCE(data.DoubleCarrier_count, 0) AS Total_count
COALESCE(data.Count, 0) AS Count
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sInduction_Name,
SUM(diTotal_Single_Carrier) AS SingleCarrier_count,
SUM(diTotal_Double_Carrier) AS DoubleCarrier_count
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03' AS sInduction_Name,
COUNT(*) AS SingleCarrier_count,
0 AS DoubleCarrier_count
COUNT(*) AS Count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "57b2b7f0fd2d28eb708e99277bdd4818382ad10fed2e4a27067cbcdfbacb94c1",
"lastModificationSignature": "7b80d6e76625a91d90940129402b865d99aa45dc17275a300c264fd4b3889eb2",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:15:03Z"
"timestamp": "2025-12-01T07:46:25Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,14 +0,0 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'S03' AS `Induction Name`,
'100%' AS `Total Single Carrier`,
'0%' AS `Total Double Carrier`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -1,51 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "fc6b89ae44bfeb7a305d2cab15cfef80a2ef36645bbc6259c53ce4633c2e60f4",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T17:10:29Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "inductionname",
"sqlType": 7
}
]
}
}

View File

@ -1,50 +1,24 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(data.sInduction_Name, 'N/A') AS sInduction_Name,
COALESCE(data.SingleCarrier_percent, '0%') AS SingleCarrier_percent,
COALESCE(data.DoubleCarrier_percent, '0%') AS DoubleCarrier_percent,
COALESCE(data.Total_count, 0) AS Total_count
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sInduction_Name,
CONCAT(
CASE
WHEN (COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diTotal_Single_Carrier), 0) * 100.0) / (
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)
), 2)
END, '%'
) AS SingleCarrier_percent,
CONCAT(
CASE
WHEN (COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diTotal_Double_Carrier), 0) * 100.0) / (
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0)
), 2)
END, '%'
) AS DoubleCarrier_percent,
COALESCE(SUM(diTotal_Single_Carrier), 0) + COALESCE(SUM(diTotal_Double_Carrier), 0) AS Total_count
FROM induction_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sInduction_Name = :inductionname OR :inductionname IS NULL OR :inductionname = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sInduction_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03' AS sInduction_Name,
'100%' AS SingleCarrier_percent,
'0%' AS DoubleCarrier_percent,
COUNT(*) AS Total_count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS StartTimestamp,
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS Hour,
'S03' AS sInduction_Name,
COUNT(*) AS Total_count
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:inductionname IS NULL OR :inductionname = '' OR :inductionname = 'S03')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY StartTimestamp ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "177bf58e5e78551894fa4043b1aa81dba629112e72f56b2deaa755ee244c0648",
"lastModificationSignature": "d6ae98b57c685eaca4465716cb0357ef2fdd8cc9b8565b920f218799fbb9e01a",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:15:37Z"
"timestamp": "2025-12-01T08:22:54Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,14 +0,0 @@
-- Hourly Induct Graph Query (Rate)
-- Shows every hour in detail for graphing
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
COUNT(*) AS Total
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY DATE(t_stamp) ASC, HOUR(t_stamp) ASC;

View File

@ -1,46 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "23d42b9257d52e8126c42b32fc0fdcd1105310b5694f67a9540a99be948bf3dc",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:31:10Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
}
]
}
}

View File

@ -1,62 +0,0 @@
-- Hourly Lane Graph Query (Rate per hour)
-- Shows every hour in detail with all lane statistics as rates (items per hour) for graphing
-- Rate calculation matches LaneDetails_Rate.sql formula
-- Filtered by specific lane parameter
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
ROUND(total_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Total,
ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Sorted,
ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unknown,
ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unexpected,
ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS TrackingError,
ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS GapError,
ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFull,
ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFault,
ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationInvalid,
ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationDisabled,
ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ThroughputLimit,
ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DivertFail,
ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNone,
ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Lost,
ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DimensionError,
ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS WeightError,
ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ContainerUtilization,
ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS UnableToDivert,
ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNotAttempted,
ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ScanError
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS total_count,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE DEST_REQ = :lane AND t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,51 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "67881264498210e0897664c662749fecb07c51e0d0e28829807d0cfc72534ef2",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:31:10Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "lane",
"sqlType": 7
}
]
}
}

View File

@ -1,62 +0,0 @@
-- Hourly Lane Details Rate Query (Table Display)
-- Shows every hour in detail with all lane statistics as rates (items per hour)
-- Rate calculation matches LaneDetails_Rate.sql formula
-- Filtered by specific lane parameter
SELECT
CONCAT(DATE(Startstamp), ' ', LPAD(HOUR(Startstamp), 2, '0'), ':00') AS StartTimestamp,
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
CONCAT(ROUND(total_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS total_rate,
CONCAT(ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS success_rate,
CONCAT(ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unknown_rate,
CONCAT(ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unexpected_container_rate,
CONCAT(ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS tracking_error_rate,
CONCAT(ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS gap_error_rate,
CONCAT(ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_full_rate,
CONCAT(ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_non_operational_rate,
CONCAT(ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS invalid_destination_rate,
CONCAT(ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_disabled_rate,
CONCAT(ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS throughput_limit_rate,
CONCAT(ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS failed_to_divert_rate,
CONCAT(ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS no_destination_received_rate,
CONCAT(ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS lost_container_rate,
CONCAT(ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS dimension_error_rate,
CONCAT(ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS weight_error_rate,
CONCAT(ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS container_utilization_rate,
CONCAT(ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unable_to_divert_rate,
CONCAT(ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_not_attempted_rate,
CONCAT(ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS scan_error_rate
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS total_count,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE DEST_REQ = :lane AND t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,51 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "4b9729fab1eee53a2a42f43641927819c64a35342ecb09b81df68bcae3851cf9",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:31:10Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "lane",
"sqlType": 7
}
]
}
}

View File

@ -1,45 +1,29 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sScanner_Name AS `Scanner Name`,
COALESCE(SUM(diScanner_bad_reads), 0) AS `Total Bad Reads`,
COALESCE(SUM(diScanner_comm_fault), 0) AS `Total Comm Faults`,
COALESCE(SUM(diScanner_good_reads), 0) AS `Total Good Reads`,
COALESCE(SUM(diScanner_multi_items), 0) AS `Total Multi Items`,
COALESCE(SUM(diScanner_multi_reads), 0) AS `Total Multi Reads`,
COALESCE(SUM(diScanner_no_data), 0) AS `Total No Data`,
COALESCE(SUM(diScanner_no_reads), 0) AS `Total No Reads`,
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0) AS `Total`
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS `Hour`,
'S03aa' AS `Scanner Name`,
-- REAL SCAN STATS FROM item_data
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS `Total Bad Reads`,
0 AS `Total Comm Faults`,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS `Total Good Reads`,
0 AS `Total Multi Items`,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS `Total Multi Reads`,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS `Total No Data`,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS `Total No Reads`,
COUNT(*) AS `Total`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "02ce867ea693a86861dabfbda428296fd33ef2d9c1e79c2c02588494a49b5bc8",
"lastModificationSignature": "024e03363409eb08f618131f0108313ea7e0662e60cc237d70aa720cb68da66d",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:12:15Z"
"timestamp": "2025-12-01T08:17:53Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,56 +1,47 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
COALESCE(data.BadReads, 0) AS BadReads,
COALESCE(data.CommFaults, 0) AS CommFaults,
COALESCE(data.GoodReads, 0) AS GoodReads,
COALESCE(data.MultiItems, 0) AS MultiItems,
COALESCE(data.MultiReads, 0) AS MultiReads,
COALESCE(data.NoData, 0) AS NoData,
COALESCE(data.NoReads, 0) AS NoReads,
COALESCE(data.BadReads, 0) +
COALESCE(data.CommFaults, 0) +
COALESCE(data.GoodReads, 0) +
COALESCE(data.MultiItems, 0) +
COALESCE(data.MultiReads, 0) +
COALESCE(data.NoData, 0) +
COALESCE(data.NoReads, 0) AS Total
COALESCE(data.BadReads, 0) AS BadReads,
COALESCE(data.GoodReads, 0) AS GoodReads,
COALESCE(data.MultiReads, 0) AS MultiReads,
COALESCE(data.NoData, 0) AS NoData,
COALESCE(data.NoReads, 0) AS NoReads,
COALESCE(data.Total, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sScanner_Name,
SUM(diScanner_bad_reads) AS BadReads,
SUM(diScanner_comm_fault) AS CommFaults,
SUM(diScanner_good_reads) AS GoodReads,
SUM(diScanner_multi_items) AS MultiItems,
SUM(diScanner_multi_reads) AS MultiReads,
SUM(diScanner_no_data) AS NoData,
SUM(diScanner_no_reads) AS NoReads
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
-- Real counts from item_data
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS BadReads,
0 AS CommFaults,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS GoodReads,
0 AS MultiItems,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS GoodReads,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS MultiReads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS NoData,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS NoReads
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS NoData,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS NoReads,
-- Total scans in this bucket
COUNT(*) AS Total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "4bd84e777396fdde9980a44686304395ccda69fa68a41e6e2bc10317b14cda9a",
"lastModificationSignature": "e377e9bcce6d506b653a2bb6930edafa8afef638264f422080b18a46fb5bc439",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:10:38Z"
"timestamp": "2025-12-01T08:14:14Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,209 +1,53 @@
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
sScanner_Name AS `Scanner Name`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_bad_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Bad Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_comm_fault), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Comm Faults`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_good_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Good Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_items), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Multi Items`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total Multi Reads`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_data), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total No Data`,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS `Total No Reads`
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS `Start Timestamp`,
CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS `Hour`,
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(t_stamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
) AS `Hour`,
'S03aa' AS `Scanner Name`,
/* ---- PERCENTAGES ---- */
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Bad Reads`,
'0%' AS `Total Comm Faults`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Good Reads`,
'0%' AS `Total Multi Items`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total Multi Reads`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Data`,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND( (SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 END) * 100.0) / COUNT(*), 2)
END, '%'
) AS `Total No Reads`
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
ORDER BY `Start Timestamp` ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "fb62440ec31f243656fbc2f39199108bcb8f32187d70e78f5be084a3a5982528",
"lastModificationSignature": "8fd2b396fdf81dbe9925670d509bda6cf0788e4326ab54db9487c1c266e7d713",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:12:52Z"
"timestamp": "2025-12-01T08:19:55Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,229 +1,79 @@
SELECT
COALESCE(data.roundtime, 'N/A') AS StartTimestamp,
COALESCE(CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))), 'N/A') AS Hour,
COALESCE(
CONCAT(
'H',
TIMESTAMPDIFF(
HOUR,
DATE_FORMAT(data.roundtime, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)
),
'N/A'
) AS Hour,
COALESCE(data.sScanner_Name, 'N/A') AS sScanner_Name,
COALESCE(data.BadReads, '0%') AS BadReads,
COALESCE(data.CommFaults, '0%') AS CommFaults,
COALESCE(data.GoodReads, '0%') AS GoodReads,
COALESCE(data.MultiItems, '0%') AS MultiItems,
COALESCE(data.MultiReads, '0%') AS MultiReads,
COALESCE(data.NoData, '0%') AS NoData,
COALESCE(data.NoReads, '0%') AS NoReads,
data.BadReads,
data.GoodReads,
data.MultiReads,
data.NoData,
data.NoReads,
COALESCE(data.Total, 0) AS Total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
sScanner_Name,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_bad_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS BadReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_comm_fault), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS CommFaults,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_good_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS GoodReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_items), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS MultiItems,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_multi_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS MultiReads,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_data), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS NoData,
CONCAT(
CASE
WHEN (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
) = 0 THEN 0
ELSE ROUND((COALESCE(SUM(diScanner_no_reads), 0) * 100.0) / (
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0)
), 2)
END, '%'
) AS NoReads,
COALESCE(SUM(diScanner_bad_reads), 0) +
COALESCE(SUM(diScanner_comm_fault), 0) +
COALESCE(SUM(diScanner_good_reads), 0) +
COALESCE(SUM(diScanner_multi_items), 0) +
COALESCE(SUM(diScanner_multi_reads), 0) +
COALESCE(SUM(diScanner_no_data), 0) +
COALESCE(SUM(diScanner_no_reads), 0) AS Total
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY DATE(t_stamp), HOUR(t_stamp), sScanner_Name
UNION ALL
SELECT
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS roundtime,
'S03aa' AS sScanner_Name,
COUNT(*) AS Total,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS BadReads,
'0%' AS CommFaults,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS GoodReads,
'0%' AS MultiItems,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS MultiReads,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS NoData,
CONCAT(
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0)
/ COUNT(*), 2)
END, '%'
) AS NoReads,
COUNT(*) AS Total
) AS NoReads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) AS data ON 1=1
ORDER BY data.roundtime ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "dd58c1019cb33e64af2c179f52104f89e9ce15e0af0e2ab38c13725c6f155254",
"lastModificationSignature": "9ab0a1ad6fb187f58611e61cbfbd668038a770e89179de875985d631d4bb9c47",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T15:11:18Z"
"timestamp": "2025-12-01T08:11:54Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -1,59 +0,0 @@
-- Hourly Sorter Details Graph Query (Rate)
-- Shows every hour in detail for graphing with all sorter statistics as rates (items per hour)
-- Rate calculation matches SorterDetails_Rate.sql formula
SELECT
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
ROUND(inducted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Inducted,
ROUND(sorted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Sorted,
ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unknown,
ROUND(unexpected_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Unexpected,
ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS TrackingError,
ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS GapError,
ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFull,
ROUND(destination_fault_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationFault,
ROUND(destination_invalid_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationInvalid,
ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationDisabled,
ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ThroughputLimit,
ROUND(divert_fail_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DivertFail,
ROUND(destination_none_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNone,
ROUND(lost_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS Lost,
ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DimensionError,
ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS WeightError,
ROUND(container_util_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ContainerUtilization,
ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS UnableToDivert,
ROUND(dest_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS DestinationNotAttempted,
ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2) AS ScanError
FROM (
SELECT
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
COUNT(*) AS inducted_count,
SUM(DivertStatus = 0) AS sorted_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_fault_count,
SUM(DivertStatus = 7) AS destination_invalid_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS divert_fail_count,
SUM(DivertStatus = 16) AS destination_none_count,
SUM(DivertStatus = 17) AS lost_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_util_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS dest_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,46 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "8c6bdb7de87c2cc4310fbefb0dc0af4c38766f3113234ebb50f61db2818c94eb",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:31:11Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
}
]
}
}

View File

@ -1,59 +0,0 @@
-- Hourly Sorter Details Rate Query (Table Display)
-- Shows every hour in detail with all sorter statistics as rates (items per hour)
-- Rate calculation matches SorterDetails_Rate.sql formula
SELECT
CONCAT(DATE(Startstamp), ' ', LPAD(HOUR(Startstamp), 2, '0'), ':00') AS Startstamp,
CONCAT('H', TIMESTAMPDIFF(HOUR,
DATE_FORMAT(Startstamp, "%Y-%m-%d %H:00:00"),
DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00")
)) AS Hour,
CONCAT(ROUND(success_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS success_rate,
CONCAT(ROUND(unknown_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unknown_rate,
CONCAT(ROUND(unexpected_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unexpected_container_rate,
CONCAT(ROUND(tracking_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS tracking_error_rate,
CONCAT(ROUND(gap_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS gap_error_rate,
CONCAT(ROUND(destination_full_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_full_rate,
CONCAT(ROUND(destination_non_operational_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_non_operational_rate,
CONCAT(ROUND(invalid_destination_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS invalid_destination_rate,
CONCAT(ROUND(destination_disabled_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_disabled_rate,
CONCAT(ROUND(throughput_limit_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS throughput_limit_rate,
CONCAT(ROUND(failed_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS failed_to_divert_rate,
CONCAT(ROUND(no_destination_received_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS no_destination_received_rate,
CONCAT(ROUND(lost_container_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS lost_container_rate,
CONCAT(ROUND(dimension_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS dimension_error_rate,
CONCAT(ROUND(weight_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS weight_error_rate,
CONCAT(ROUND(container_utilization_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS container_utilization_rate,
CONCAT(ROUND(unable_to_divert_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS unable_to_divert_rate,
CONCAT(ROUND(destination_not_attempted_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS destination_not_attempted_rate,
CONCAT(ROUND(scan_error_count * 3600 / TIMESTAMPDIFF(SECOND, Startstamp, Endtstamp), 2), ' pph') AS scan_error_rate
FROM (
SELECT
DATE(t_stamp) AS date_part,
HOUR(t_stamp) AS hour_part,
MIN(t_stamp) AS Startstamp,
MAX(t_stamp) AS Endtstamp,
SUM(DivertStatus = 0) AS success_count,
SUM(DivertStatus = 1) AS unknown_count,
SUM(DivertStatus = 2) AS unexpected_container_count,
SUM(DivertStatus = 3) AS tracking_error_count,
SUM(DivertStatus = 4) AS gap_error_count,
SUM(DivertStatus = 5) AS destination_full_count,
SUM(DivertStatus = 6) AS destination_non_operational_count,
SUM(DivertStatus = 7) AS invalid_destination_count,
SUM(DivertStatus = 12) AS destination_disabled_count,
SUM(DivertStatus = 13) AS throughput_limit_count,
SUM(DivertStatus = 14) AS failed_to_divert_count,
SUM(DivertStatus = 16) AS no_destination_received_count,
SUM(DivertStatus = 17) AS lost_container_count,
SUM(DivertStatus = 18) AS dimension_error_count,
SUM(DivertStatus = 19) AS weight_error_count,
SUM(DivertStatus = 20) AS container_utilization_count,
SUM(DivertStatus = 21) AS unable_to_divert_count,
SUM(DivertStatus = 22) AS destination_not_attempted_count,
SUM(DivertStatus IN (8, 9, 10)) AS scan_error_count
FROM alltable
WHERE t_stamp BETWEEN :starttime AND :endtime
GROUP BY DATE(t_stamp), HOUR(t_stamp)
) counts
ORDER BY Startstamp ASC;

View File

@ -1,46 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "511103d25c5a516c8dadeb22512bc71d49b10c04a6211592b278cfe84f0ea80b",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:31:10Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
}
]
}
}

View File

@ -2,62 +2,51 @@ SELECT
roundtime AS `Round Time`,
sScanner_Name AS `Scanner Name`,
COALESCE(total_bad_reads, 0) AS `Total Bad Reads`,
COALESCE(total_comm_faults, 0) AS `Total Comm Faults`,
COALESCE(total_good_reads, 0) AS `Total Good Reads`,
COALESCE(total_multi_items, 0) AS `Total Multi Items`,
COALESCE(total_multi_reads, 0) AS `Total Multi Reads`,
COALESCE(total_no_data, 0) AS `Total No Data`,
COALESCE(total_no_reads, 0) AS `Total No Reads`,
COALESCE(total_bad_reads, 0) +
COALESCE(total_comm_faults, 0) +
COALESCE(total_good_reads, 0) +
COALESCE(total_multi_items, 0) +
COALESCE(total_multi_reads, 0) +
COALESCE(total_no_data, 0) +
COALESCE(total_no_reads, 0) AS `Total`
(
COALESCE(total_bad_reads, 0) +
COALESCE(total_good_reads, 0) +
COALESCE(total_multi_reads, 0) +
COALESCE(total_no_data, 0) +
COALESCE(total_no_reads, 0)
) AS `Total`
FROM (
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(t_stamp) /
FLOOR(
UNIX_TIMESTAMP(t_stamp) /
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) *
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) AS roundtime,
sScanner_Name,
SUM(diScanner_bad_reads) AS total_bad_reads,
SUM(diScanner_comm_fault) AS total_comm_faults,
SUM(diScanner_good_reads) AS total_good_reads,
SUM(diScanner_multi_items) AS total_multi_items,
SUM(diScanner_multi_reads) AS total_multi_reads,
SUM(diScanner_no_data) AS total_no_data,
SUM(diScanner_no_reads) AS total_no_reads
FROM scanner_reads
WHERE t_stamp BETWEEN :starttime AND :endtime
AND (sScanner_Name = :scannername OR :scannername IS NULL OR :scannername = '')
GROUP BY roundtime, sScanner_Name
UNION ALL
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(t_stamp) /
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) *
) *
CEIL(TIMESTAMPDIFF(SECOND, :starttime, :endtime) / 24.0)
) AS roundtime,
'S03aa' AS sScanner_Name,
-- BAD READS (anything not success/no_read/no_code/multi)
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS total_bad_reads,
0 AS total_comm_faults,
-- GOOD reads
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS total_good_reads,
0 AS total_multi_items,
-- MULTI READS
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS total_multi_reads,
-- NO DATA
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS total_no_data,
-- NO READS
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS total_no_reads
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
AND (:scannername IS NULL OR :scannername = '' OR :scannername = 'S03aa')
GROUP BY roundtime
ORDER BY roundtime ASC
) basa;
) AS basa
ORDER BY `Round Time` ASC;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "4690c5c84319c95d04647d24b38290e1abbfdd54f27b84750c93bee96246ef91",
"lastModificationSignature": "4963d6627b70a9b71a4c9f3cd0c1efe8ee8c196011ccf22dae7f6f5b9b7bfae3",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:50:01Z"
"timestamp": "2025-12-01T08:32:12Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -5,9 +5,7 @@ SELECT
'S03aa' AS sScanner_Name,
COALESCE(sorter_total.total_bad_reads, 0) AS total_bad_reads,
0 AS total_comm_faults,
COALESCE(sorter_total.total_good_reads, 0) AS total_good_reads,
0 AS total_multi_items,
COALESCE(sorter_total.total_multi_reads, 0) AS total_multi_reads,
COALESCE(sorter_total.total_no_data, 0) AS total_no_data,
COALESCE(sorter_total.total_no_reads, 0) AS total_no_reads,

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "df107f13425dcb2c06353ffebb2fd9e2b52141c2203aff4f724478f85427bce9",
"lastModificationSignature": "f22c7f05f474fb1e9ccd3a40f537ff92fdd36159d86eb5d2f1da4a2e2ede00c6",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:52:05Z"
"timestamp": "2025-12-01T08:33:16Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -5,9 +5,7 @@ SELECT
'S03aa' AS sScanner_Name,
CONCAT(COALESCE(sorter_total.total_bad_reads, 0), '%') AS total_bad_reads,
'0%' AS total_comm_faults,
CONCAT(COALESCE(sorter_total.total_good_reads, 0), '%') AS total_good_reads,
'0%' AS total_multi_items,
CONCAT(COALESCE(sorter_total.total_multi_reads, 0), '%') AS total_multi_reads,
CONCAT(COALESCE(sorter_total.total_no_data, 0), '%') AS total_no_data,
CONCAT(COALESCE(sorter_total.total_no_reads, 0), '%') AS total_no_reads,
@ -17,28 +15,29 @@ FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15)) * 100.0) / COUNT(*), 2)
END AS total_bad_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 0) * 100.0) / COUNT(*), 2)
END AS total_good_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 10) * 100.0) / COUNT(*), 2)
END AS total_multi_reads,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 9) * 100.0) / COUNT(*), 2)
END AS total_no_data,
CASE WHEN COUNT(*) = 0 THEN 0
ELSE ROUND((SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) * 100.0) / COUNT(*), 2)
ELSE ROUND((SUM(adiSort_Code_0 = 8) * 100.0) / COUNT(*), 2)
END AS total_no_reads,
COUNT(*) AS total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND adiSort_Code_0 NOT IN (11, 15)
AND sLocation_ID LIKE 'S03%'
) AS sorter_total ON 1=1;
) AS sorter_total ON 1 = 1;

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "858c45e4b8302cade05272a1d5fc4a7263c2421f948953f20b7869ad6ca187cb",
"lastModificationSignature": "c0a3e032ff2b5c0f02904a3b7bcd5de2cd5a3f187f2bfb0558f83ca46d4a6a1f",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:53:10Z"
"timestamp": "2025-12-01T08:34:11Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -4,54 +4,68 @@ SELECT
DATE_FORMAT(:endtime, '%Y-%m-%d %H:%i') AS end_time,
'S03aa' AS sScanner_Name,
-- Bad Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_bad_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total_bad_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_bad_reads,
0 AS total_comm_faults,
-- Good Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_good_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total_good_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_good_reads,
0 AS total_multi_items,
-- Multi Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_multi_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total_multi_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_multi_reads,
-- No Data (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_no_data, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total_no_data, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_no_data,
-- No Reads (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total_no_reads, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total_no_reads, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total_no_reads,
-- Total Items (rate)
CASE
WHEN TIMESTAMPDIFF(SECOND, :starttime, :endtime) = 0 THEN 0
ELSE ROUND(COALESCE(sorter_total.total, 0) * 3600.0
/ TIMESTAMPDIFF(SECOND, :starttime, :endtime), 2)
ELSE ROUND(
COALESCE(sorter_total.total, 0) * 3600.0 /
TIMESTAMPDIFF(SECOND, :starttime, :endtime),
2)
END AS total
FROM (SELECT 1) AS p
LEFT JOIN (
SELECT
SUM(CASE WHEN adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15) THEN 1 ELSE 0 END) AS total_bad_reads,
SUM(CASE WHEN adiSort_Code_0 = 0 THEN 1 ELSE 0 END) AS total_good_reads,
SUM(CASE WHEN adiSort_Code_0 = 10 THEN 1 ELSE 0 END) AS total_multi_reads,
SUM(CASE WHEN adiSort_Code_0 = 9 THEN 1 ELSE 0 END) AS total_no_data,
SUM(CASE WHEN adiSort_Code_0 = 8 THEN 1 ELSE 0 END) AS total_no_reads,
SUM(adiSort_Code_0 NOT IN (0, 8, 9, 10, 11, 15)) AS total_bad_reads,
SUM(adiSort_Code_0 = 0) AS total_good_reads,
SUM(adiSort_Code_0 = 10) AS total_multi_reads,
SUM(adiSort_Code_0 = 9) AS total_no_data,
SUM(adiSort_Code_0 = 8) AS total_no_reads,
COUNT(*) AS total
FROM item_data
WHERE t_stamp BETWEEN :starttime AND :endtime

View File

@ -18,7 +18,7 @@
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "920f87cc3717dae218a6b6de4811e895f2578c1cb44e0de174546d8613d7f23f",
"lastModificationSignature": "1dbfa9f5946ee0cf21303e08b36d7ea66c0b3743ec05f8ba756cae2b6ab7dabb",
"permissions": [
{
"zone": "",
@ -27,7 +27,7 @@
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-19T14:54:39Z"
"timestamp": "2025-12-01T08:35:24Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [

View File

@ -650,3 +650,13 @@ Starting conversion: 20251125:12.11.55
Conversion finished. Elapsed time: 12 ms
Starting conversion: 20251125:12.15.40
Conversion finished. Elapsed time: 10 ms
Starting conversion: 20251126:11.37.16
Conversion finished. Elapsed time: 10 ms
Starting conversion: 20251127:11.19.49
Conversion finished. Elapsed time: 13 ms
Starting conversion: 20251128:09.14.24
Conversion finished. Elapsed time: 14 ms
Starting conversion: 20251129:13.36.22
Conversion finished. Elapsed time: 17 ms
Starting conversion: 20251201:10.36.05
Conversion finished. Elapsed time: 10 ms