问题描述
最近,我通过Excel创建了一个自动生产计划工具,该工具为在同一流程中生产的物料分配了等级,然后结合使用该等级和工作量来创建计划。
它完全按照预期的方式运行,但是由于数据量大且性能卓越,因此性能非常慢,这就是为什么我希望将计算移至sql。
一般逻辑是这样的: -从第二天的第一天开始总是制作所有东西 -总是先产生较早级别的项目,再产生较晚级别的项目
您可以在下图中看到这种情况的发生,该行今天有21.5小时,因此项目将在第1天生产,直到等于21.5,然后将其余部分结转到第2天,依此类推。
我能够使用冗长的基于位置的公式在excel中做到这一点,但我正在尝试一种无需依赖上面一行就可以在sql中获得相同结果的方法。
我不确定如何传达“从当天生产的优先级较高的物品的可用生产时间中减去”之类的信息。
如果问题不清楚,我深表歉意,但是任何建议都将不胜感激。
Image of Production Hours Cascading by Priority and Day
Example of Position-Based Fomula
解决方法
感谢shawnt00,这使我朝着正确的方向前进。最终,我不得不对case语句进行一些修改,以使其偏离累积总数,但是我能够使用sum()Over(按by by分区)语句获得所需的结果。