本帖最后由 pimple 于 2012-05-23 17:01:57 编辑

解决方案 »

  1.   

    1.全部查询出来
    2.
    需要取出的数量 $a
    $库存数量的总和$b
    foreach( $result as $k => $v)
    {
       $b +=(int) $v['数量'];
       if($b >= $a)
       {
           记录进货批次;
           只修改进货批次之前的数据库记录
           进货批次<$k     update 0;
           进货批次=$k     updata $b-$a;
       }
    }
      

  2.   

    只记录流水:进 +,出 -库存 sum(数量)
    入库总量 sum(数量) where 数量>0
    出库总量 sum(数量) where 数量<0可按批次分组 group by 批次
      

  3.   

    上次给过你一个sql啊, 不管用吗?不过,那个sql太过复杂,玩玩可以,
    其实不提倡你用在项目里,
    再说在数据库里实际运行的update是一样的,因为你反正有那么多行需要改.不知道你现在的代码什么样, 用一个循环不就可以了吗?