需要从一个表如a表中下减去数量,表中数据格式如下;
批号  余数量
03d     10
f001    20
bx01    0.5我的意思是我输入本次下账数量比如12在第一个批号03d余数量不够减账的情况下如何自动减去第二个批号f001的数量2个,即当第一个批号数量不够下账时,减去第一个批号全部余数量,接着再减去第N个批号余数量至到输入数量为0结束.以此类推,比如表a行数不定的情况下,如何做个循环自动递减各批号数量至到本次输入的下账数量全部减完?????

解决方案 »

  1.   

    首先 批号必须是有顺序的,如果是无规则 ,则无法定位 a的位置,实现自动减
    设定要减的数为 a 
    计算出a所在的批号区间,例如在n 和n+1
    这里按批号所在数据累加即可,当n>1,a<=sum(余数量)时候,即找到批号区间
      

  2.   

    算法你自己都已经说清楚了嘛。
    1、搜索可以减的批次,排序
    2、建循环。每次取一个批次,取批次余量与要减量的最小值 n
               批次余量减n, 要减量减n
               next
               直至没有要减量了或没有批次了。如用用存储过程的话:
    我一般用临时表保存那个批次队列,设一个Flag,用一条就标记一条。
    游标我总觉得不是很稳定。