在线!!!请教大神探讨个问题!!
订单中,对于产品编号中,前面相同,尾号为000或010时,且库存属性为X010,拣货需作如下调整:
前提是产品编号前面部分相同,尾号部分不同 如:000-111-000和000-601-010
1. 单据明细中,产品编号尾号为000时, 库存属性为X010,进行拣货时,拣货顺序如下:
(1) 先出尾号为000,属性为X010的库存
(2) 不足时,再出010,属性为X010的库存
(3) 再不足时,其次出000,属性为X013的库存
2. 单据明细中,产品号前面相同,产品编号尾号为010时, 库存属性为X010,进行拣货时,拣货顺序如下:
(1) 先出尾号为010,属性为X010的库存
(2) 不足时,再出000,属性为x010的库存
(3) 再不足时,其次出010,属性为X013的库存
-----------------------------------
一个订单包含很多个产品编号一对多的关系!
一搬的做法是,直接循环订单详细表,
for(订单详细表产品个数){
按以上条件判断。if(产品编号尾号为00000时, 库存属性为X010){
(1) 先出尾号为000,属性为X010的库存
(2) 不足时,再出010,属性为X010的库存
(3) 再不足时,其次出000,属性为X013的库存
}
}
问题来了,如果有个订单符合这些条件的数据有1000条呢。。这时性能严重下降。1000*3就是3000次的数据查询。
有大神知道怎么解决吗。也有尝试用存储过程来解决可是依然绕不开性能问题。。。
------解决方案--------------------
------解决方案--------------------
先将符合拣货条件的货品查出,并按拣货条件进行排序,得到一个游标,再从游标中循环取数量进行累加,直到选够数量,然后对选中的记录进行出货处理。
------解决方案--------------------
------解决方案--------------------
我想知道楼主要的结果是什么?
比方订单a
细表:
产品1 100
产品2 40
.
.
.
最后要的是:每个产品的出库明细(以某种格式列出的出库明细)还是直接出库(减库存)就行?