在每天的运行总量上添加最小数量

问题描述 投票:0回答:1

我有一个查询,该查询给出每天的库存减去销售额的运行总计,并且需要显示最小可用数量以确保销售额不会超售。 在 Excel 中,我可以在某个范围内运行 min,那么 SQL 的等效项是什么?

sql min
1个回答
0
投票

您的意思是您想要随时间推移销售的数量(下表中的“销售”列)并确保其不超过“可用销售量”吗?

参考代码:

WITH
  a AS (
  SELECT
    *,
    LAG(daily_total) OVER (PARTITION BY stockcode ORDER BY date) AS aa,
    LAG(Available_To_Sell) OVER (PARTITION BY stockcode ORDER BY date) AS a_t_s_lag
  FROM
    `optimal-weft-418017.78207210.78207210_01`
  ORDER BY
    stockcode,
    date
  LIMIT
    100),
  b AS (
  SELECT
    *,
    CASE
      WHEN aa-daily_total < 0 THEN 0
    ELSE
    aa-daily_total
  END
    AS Sales
  FROM
    a
  ORDER BY
    stockcode,
    date)
SELECT
  *EXCEPT(a_t_s_lag,
    aa),
  CASE
    WHEN Sales>a_t_s_lag THEN 'Exceeds Available Qty'
    WHEN Sales IS NULL THEN NULL
  ELSE
  'OK'
END
  AS QA
FROM
  b
ORDER BY
  stockcode,
  date

输出表:

股票代号 日期 每日_总计 可出售 销售 质量保证
项目 3A 2020-01-01 23 6
项目 3A 2024-03-19 22 6 1 好的
项目 3A 2024-03-20 20 6 2 好的
项目 3A 2024-03-21 15 6 5 好的
项目 3A 2024-03-25 10 6 5 好的
项目 3A 2024-03-26 6 6 4 好的
项目 3A 2024-03-28 8 6 0 好的
项目 3A 2024-04-04 7 6 1 好的
项目 3A 2024-04-08 7 6 0 好的
项目 3A 2024-04-09 6 6 1 好的
项目 3A 2024-04-10 11 11 0 好的
项目 3A 2024-04-15 11 11 0 好的
项目 3A 2024-04-22 11 11 0 好的
项目 4A 2020-01-01 4 4
项目 4A 2024-03-20 3 3 1 好的
项目 4A 2024-03-25 1 1 2 好的
项目 4A 2024-03-26 1 1 0 好的
© www.soinside.com 2019 - 2024. All rights reserved.