雪花中的SQL查询 - 计算供应天数

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

<= (200+300+100) equal 3 days on 1/23/2025. 600 <= (300+100) equal 2 days

-location材料 -start_date1234561/23/20251/24/20251/25/20251/26/20251/27/2025
inventory forecast W01
700 400 W01 123456
600 200 W01 123456
400 300 W01 123456
450 100 W01 123456
50 300 输出

-location

材料 -start_date inventory1/23/202570060040045050 我的查询不起作用SELECT "A"."LOCATION", "A"."MATERIAL", "A"."START_DATE", "A"."INVENTORY", "A"."FORECAST", (SELECT SUM("B"."FORECAST") FROM "B" WHERE "B"."START_DATE" >= "A"."START_DATE" ) AS "FUTURE_DEMAND", CASE WHEN (SELECT SUM("B"."FORECAST") FROM "B" WHERE "B"."START_DATE" >= "A"."START_DATE ) = 0 THEN NULL ELSE "A"."INVENTORY" / (SELECT SUM ("B"."FORECAST") FROM "B" WHERE "B"."START_DATE" >= "A"."START_DATE END AS "DOS" FROM "A" ORDER BY "A"."START_DATE" 在您的输出中,因为
forecast dos W01 123456
400 3 W01 123456 1/24/2025
200 2 W01 123456 1/25/2025
300 2 W01 123456 1/26/2025
100 2 W01 123456 1/27/2025
300 0
1/26/2025
dos不应是2是1天

I已通过递归将锚定为0 dos的递归对其进行,然后比较后续日期的每一行,直到预测的总和> = = = = = = = =。

在外部查询中,所有列都通过连接DOS_CTE和表格与DOS一起获取。
1/26/2025
sql snowflake-cloud-data-platform case cumulative-sum
1个回答
0
投票


    
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.