You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何查询SKU从最近断货日到当日的累计断货天数

MySQL 断货天数统计SQL实现方案

实现逻辑

  1. 先筛选出统计当日(2021-11-23)库存为0的SKU,直接排除当日有货的SKU
  2. 对符合条件的SKU,查询其最后一次库存>0的记录日期
  3. 断货起始日为最后一次有货日期的次日,断货天数等于统计当日减去断货起始日的天数差

完整SQL代码

-- 定义统计截止日期,可根据需求修改
SET @current_date = '2021-11-23';

SELECT 
    t1.sku,
    DATEDIFF(@current_date, IFNULL(t2.last_has_stock_date + INTERVAL 1 DAY, (SELECT MIN(日期) FROM stock_log))) AS 断货天数
FROM 
    -- 筛选当日断货的SKU
    (SELECT sku FROM stock_log WHERE 日期 = @current_date AND 库存数量 = 0) t1
LEFT JOIN 
    -- 查找每个SKU最后一次有库存的日期
    (SELECT sku, MAX(日期) AS last_has_stock_date FROM stock_log WHERE 库存数量 > 0 GROUP BY sku) t2
ON t1.sku = t2.sku;

结果验证

运行上述SQL后,将得到和预期完全一致的结果:

sku断货天数
1110
1232

结果说明

  • SKU111最后一次有货日期为2021-11-22,断货起始日为2021-11-23,和统计当日相同,所以断货天数为0
  • SKU123最后一次有货日期为2021-11-20,断货起始日为2021-11-21,到2021-11-23的天数差为2,所以断货天数为2
  • SKU146当日库存为2,不在统计结果中

内容的提问来源于stack exchange,提问作者Nacho Sarmiento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:15:08