modified gatewway script, updated queries
This commit is contained in:
parent
d702f52f8e
commit
f27e099edd
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Binary file not shown.
@ -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;
|
||||
@ -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;
|
||||
@ -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,
|
||||
@ -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 |
@ -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;
|
||||
Binary file not shown.
@ -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,26 +15,27 @@ 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)
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 |
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
@ -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 |
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -9,8 +9,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-11-20T12:26:12Z"
|
||||
"timestamp": "2025-12-01T09:40:22Z"
|
||||
},
|
||||
"lastModificationSignature": "8337f716108011f6dcb21b0f9f2ddfdef0eb96f5887b9ce358fb1c380ca4e2ee"
|
||||
"lastModificationSignature": "1001966be8615a467cfcc11efeab3990eefdbf6fa56f9bd0f92fcecee0376913"
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
CONCAT(DATE(t_stamp), ' ', HOUR(t_stamp), ':00') AS StartTimestamp,
|
||||
|
||||
UNION ALL
|
||||
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,
|
||||
|
||||
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;
|
||||
ORDER BY StartTimestamp ASC;
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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.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 = 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 = 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;
|
||||
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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
|
||||
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`,
|
||||
|
||||
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 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;
|
||||
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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_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')
|
||||
|
||||
GROUP BY roundtime
|
||||
ORDER BY roundtime ASC
|
||||
) basa;
|
||||
) AS basa
|
||||
|
||||
ORDER BY `Round Time` ASC;
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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,26 +15,27 @@ 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)
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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": [
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user