您的意思是您想要随时间推移销售的数量(下表中的“销售”列)并确保其不超过“可用销售量”吗?
参考代码:
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 | 好的 |