SQL先计算库存的累计求和,之后关联库存,以MSQL为例
----------------------------------------------------------------------------------
WITH T1 AS (
SELECT '2023-11-15' AS 日期 ,'手机'AS 分类, '15' AS 需求数量
UNION ALL
SELECT '2023-11-16' AS 日期 ,'手机'AS 分类, '12' AS 需求数量
UNION ALL
SELECT '2023-11-17' AS 日期 ,'手机'AS 分类, '12' AS 需求数量
UNION ALL
SELECT '2023-11-15' AS 日期 ,'电脑'AS 分类, '11' AS 需求数量
UNION ALL
SELECT '2023-11-16' AS 日期 ,'电脑'AS 分类, '14' AS 需求数量
UNION ALL
SELECT '2023-11-17' AS 日期 ,'电脑'AS 分类, '8' AS 需求数量
)
,
T2 AS (
SELECT '2023-11-15' AS 日期 ,'手机'AS 分类, '27' AS 库存
UNION ALL
SELECT '2023-11-15' AS 日期 ,'电脑'AS 分类, '24' AS 库存
)
,
T3 AS (
SELECT
日期,
需求数量,
分类,
(SELECT SUM(需求数量) FROM T1 WHERE 日期<=A.日期 AND 分类=A.分类) AS 需求数量累计
FROM T1 AS A
)
SELECT T2.分类,MIN(T3.日期) AS 日期 FROM
T2
LEFT JOIN T3 ON T2.日期<=T3.日期 AND T2.分类=T3.分类 AND T2.库存 - T3.需求数量累计 < 0
GROUP BY T2.分类


