Files
LabelChange-server/daily_stats_by_customer.sql
2026-06-01 16:30:29 +08:00

56 lines
2.6 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 每日统计UTC-5时间- 按客户维度
SELECT
CustomerCode,
CustomerName,
day,
COUNT(DISTINCT lr_id) AS ,
SUM(CASE WHEN ReplaceStatus = 'N' THEN 1 ELSE 0 END) AS ,
(SELECT COUNT(*)
FROM label_scan_history lsh
JOIN label_replace_requests lrr2 ON lsh.NeutralWaybillNumber = lrr2.NeutralWaybillNumber
WHERE DATE(DATE_ADD(lsh.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId) AS ,
(SELECT COUNT(*)
FROM label_scan_history lsh
JOIN label_replace_requests lrr2 ON lsh.NeutralWaybillNumber = lrr2.NeutralWaybillNumber
WHERE DATE(DATE_ADD(lsh.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId
AND lsh.Result = 0) AS ,
(SELECT COUNT(*)
FROM label_scan_history lsh
JOIN label_replace_requests lrr2 ON lsh.NeutralWaybillNumber = lrr2.NeutralWaybillNumber
WHERE DATE(DATE_ADD(lsh.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId
AND lsh.Result != 0) AS ,
(SELECT COUNT(DISTINCT btw.id)
FROM bag_tags bt
JOIN bag_tag_waybills btw ON bt.TagNumber = btw.TagNumber
JOIN label_replace_requests lrr2 ON btw.FinalMileTrackingNumber = lrr2.FinalMileTrackingNumber
WHERE DATE(DATE_ADD(btw.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId) AS ,
(SELECT COUNT(*)
FROM order_logs ol
JOIN label_replace_requests lrr2 ON ol.FinalMileTrackingNumber = lrr2.FinalMileTrackingNumber
WHERE DATE(DATE_ADD(ol.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId
AND ol.OperationType = '集包') AS '集包扫描次数',
(SELECT COUNT(*)
FROM order_logs ol
JOIN label_replace_requests lrr2 ON ol.NeutralWaybillNumber = lrr2.NeutralWaybillNumber
WHERE DATE(DATE_ADD(ol.createdat, INTERVAL -5 HOUR)) = outer_query.day
AND lrr2.CustomerId = outer_query.CustomerId
AND ol.OperationResult = '失败') AS
FROM (
SELECT
c.Id AS CustomerId,
c.CustomerCode,
c.CustomerName,
lr.Id AS lr_id,
lr.ReplaceStatus,
DATE(DATE_ADD(lr.createdat, INTERVAL -5 HOUR)) AS day
FROM customers c
JOIN label_replace_requests lr ON c.Id = lr.CustomerId
) outer_query
GROUP BY CustomerId, CustomerCode, CustomerName, day
ORDER BY CustomerName, day;