首页 新闻 搜索 专区 学院

sql 订单商品库存分配问题

0
[已解决问题] 解决于 2017-09-21 09:16

现有一订单:

1. 物品1 5个
2. 物品2 12个

仓库库存如下:

复制代码
1. 仓库1 物品1 10个库存
2. 仓库2 物品1 5个库存
3. 仓库1 物品2 10个库存
4. 仓库2 物品2 3个库存
复制代码

我现在想直接自动得出仓库要出库的数量(用于页面展示),如:

1. 仓库1 物品1 5个
3. 仓库1 物品2 10个
4. 仓库2 物品2 2个

请问需要怎么写查询语句?

white-poplar的主页 white-poplar | 菜鸟二级 | 园豆:202
提问于:2017-09-20 17:19
< >
分享
最佳答案
0

tsql是查询用的,不是你包这种逻辑用的,不要在错误的道路上继续走下去了。

奖励园豆:5
Daniel Cai | 专家六级 |园豆:10424 | 2017-09-20 17:40

你好,请问你有什么好的思路吗,我想点击按钮直接显示自动出库的列表,之后再提交保存

white-poplar | 园豆:202 (菜鸟二级) | 2017-09-20 17:48

@white-poplar: 复杂的说这个地方你需要一个预冻过程,相当于你这个订单生成的时候虚扣减库存(不扣实际量,设置超时避免一直占用),实际实现中需要用实际库存减去未过期的预冻库存,相关的查出来后在程序里面做你这种逻辑判断后呈现。这种做法的为了避免出现实际扣减时发现库存不足导致的可能的超扣或者不好的体验(扣减失败)

简单的办法就是程序捞出来相关的库存直接计算后呈现,但在扣减时需要事务性扣减,且在扣减失败时回滚,上面的方法也就是为了规避这种问题。

Daniel Cai | 园豆:10424 (专家六级) | 2017-09-20 18:02

你好,你说的程序捞出库存数据处理,能不能提供下具体逻辑思路,我好像卡在这块了

white-poplar | 园豆:202 (菜鸟二级) | 2017-09-20 21:32

@white-poplar: 按照你题目的意思就直接查询所有还有物品1和2余量的数据行就可以了。在程序中只是按照你的规则做一次排序(比如按照仓库1,2顺序),然后在程序中对这个集合做一次遍历,每次迭代周期中对订单数据进行扣减,直到满足整个订单物品需求即可跳出循环,最后将遍历所产生的扣减方案输出出来即可(同时你也可以记录下预计扣减哪行多少,方便后面提交的时候直接对对应数据行进行更新,但务必需要建立在库存足够的基础上。)

Daniel Cai | 园豆:10424 (专家六级) | 2017-09-20 23:11
其他回答(2)
0

我想知道 你这 仓库2 物品2 2个是怎么回事

Sen7 | 园豆:250 (菜鸟二级) | 2017-09-20 17:40

就是这个仓库物品2  库存有2个

支持(0) 反对(0) white-poplar | 园豆:202 (菜鸟二级) | 2017-09-20 17:49
0

这个事情不是软件问题,是业务问题。没有哪个公司是这样管理仓库的,只有程序员才这样管理仓库。

爱编程的大叔 | 园豆:30753 (高人七级) | 2017-09-20 23:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册