0

注意:我没有对数据库进行更改。我正在创建一份报告。

报告的目的是显示需要组装以便装运的待处理订单,但直到有足够的库存来填充订单时才显示。一个订单包括多个库存项目,但现有库存必须 >= 每个库存项目的订购数量,并且在订单可以添加到报告之前按最旧日期排序。

我已经把它写到它拉订单的地方,但我需要它循环到下一个订单,并从这个订单之前的计算中结转现有库存数量。当计算<0时,我不需要看顺序。

示例输出:

Order Date | Order No | Item No | Quantity Ordered | On Hand | Available Qty

2015-01-01     123456     555555    50                 60        10
2015-01-02     555544     555555    10                 10        00

手头上的通知在第一行中为项目编号 555555 显示 60。这是实际的 QOH,但报告需要从我的 On Hand 库存中减去上一行中订购的数量,然后给我余数,或者在 On Hand 下显示新的可用总数。当我的现有量无法完成订单时,我不希望订单出现在我的报告中。我当前的报告显示两行的 On Hand 均为 60,而不是像上面那样为零,它只是从 60 中减去 10,就好像这是我唯一的订单一样。

我不知道在字段中进行这种类型的增量更改要采取什么方法,但我假设它涉及一个循环和一个变量(如果我需要添加一个变量,那么它需要从实际数量开始手), ????有人可以帮我指路吗?我试图回答这个问题只会让我更加不确定如何做到这一点。我可以提供 SQL,但它相当复杂,因此我试图将其保持在更一般的水平上。

4

1 回答 1

0

“循环”应该作为 SQL 中的最后手段。您可以使用CURSOR来执行此操作,但它们往往运行速度较慢,并且比标准 SQL 命令需要更多的工作。

我建议尝试使用子查询/CTE(通用表表达式)将此问题分解为较小的表。您能否创建一个查询来显示每个项目编号的总手头数量?现在把它放到一个子查询中并开始在它之上构建。

于 2015-06-12T17:16:35.750 回答