【发布时间】:2020-08-13 18:39:23
【问题描述】:
最近我通过 Excel 创建了一个自动化生产调度工具,它为在同一流程中生产的项目分配一个等级,然后使用该等级与工作量相结合来创建一个计划。
它完全按照预期的方式运行,但由于数据量大而且它是 excel,它的性能非常慢,这就是我希望将计算转移到 SQL 的原因。
一般逻辑是这样的: - 总是在第二天之前的第一天生产所有东西 - 总是先生产较早等级的物品,然后再生产较晚等级的物品
您可以在下图中看到这是如何进行的,该行今天有 21.5 小时,因此项目将在第 1 天生产,直到等于 21.5,然后将剩余部分结转到第 2 天,依此类推。
我能够在 Excel 中使用冗长的基于位置的公式来做到这一点,但我正在尝试想办法在 SQL 中获得相同的结果,而不必依赖于查看上面的行。
我不知道如何表达类似“从可用时间中减去同一天生产的优先级更高的项目的生产时间”之类的内容。
如果问题不清楚,我深表歉意,但我们将不胜感激。
【问题讨论】:
-
sum() over (order by ... between rows preceding and current row)?? -
您使用的是哪种 DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS
-
抱歉,我使用的是 Microsoft SSMS
-
SSMS 只是一个客户端。但它很可能表明 SQL Server 是实际的 DBMS。
-
是的,我们使用的是 Microsoft SQL Server。
标签: sql sql-server ssms