在线!!!请教大神探讨个问题!!
订单中,对于产品编号中,前面相同,尾号为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次的数据查询。
有大神知道怎么解决吗。也有尝试用存储过程来解决可是依然绕不开性能问题。。。
[解决办法]