c# - 获取可用数量少于需要的物品
问题描述
我有一个订单项目列表和每个项目的库存数量列表
我想获得每个我没有足够库存的物品中的第一个
这是订购商品的清单
OrderId Item QtyNeeded
----------- ---------- -----------
156987 Item1025 72
156991 Item1025 55
157000 Item125 30
156986 Item1250 50
156989 Item255 20
156997 Item255 99
156992 Item3356 90
156988 Item659 60
156990 Item6598 1
156998 Item6599 105
156999 Item6600 200
156993 Item6600 105
156994 Item6602 100
156995 Item6603 30
156996 Item7809 56
这是库存清单
Item QtyHave
---------- -----------
Item1025 200
Item125 20
Item1250 65
Item255 110
Item3356 100
Item659 100
Item6598 25
Item6599 100
Item6600 275
Item6602 120
Item6603 50
Item7809 75
我想查看一个包含第一个订单项目的列表,我没有足够的库存,如下所示:
OrderId Item
----------- ----------
157000 Item125
156997 Item255
156998 Item6599
156993 Item6600
最好看看有多少是部分可用的
OrderId Item QtyAvailable
----------- ---------- ------------
157000 Item125 20
156997 Item255 90
156998 Item6599 100
156993 Item6600 75
解决方案
我不太符合您的预期结果,如果您澄清一下您是如何通过这些数字得出的,我可以改进这一点 - 但希望这能让您开始。
如果您跟踪按 Order id 排序并按项目分区所需的累积数量,您会看到每个步骤需要多少东西。然后,您可以将其加入您的库存
with requirements as
(
select
OrderId,
Item,
QtyNeeded,
SUM(QtyNeeded) OVER (PARTITION BY Item ORDER BY OrderId) as CumQtyNeeded
from orders
)
select *
from requirements r
inner join inventory i
on r.item = i.item
where r.CumQtyNeeded > i.QtyHave
推荐阅读
- c# - 如何通过 HTTP 触发器将数据加载/保存到 CosmosDB?
- angular - 为特定应用程序或库创建块时,webpack 如何了解工作区中的项目特定依赖关系
- database - NoSQL 数据库中的 JSON 差异版本控制
- powershell - 方法调用失败,因为 [System.String] 不包含名为“SelectNodes”的方法
- python - 使用烧瓶一次提交写入三个数据库
- php - 使用加载数据本地 infile 加载不完整的 csv 数据
- vba - VBA,使用标题名称将值从一张表复制到另一张表
- go - 所有测试的 Golang 全局设置(在相同和其他子模块中)。
- sql-server - SISS - 检查 Null DerivedColumn
- sql - 使用嵌套的 IFNULL 沿互斥路径检查表?