有数据表Y_SBP_SIZE_ITEM,现在要更新其中的DETAILSIZE,MINUSSIZE中的内容,其都是从另外一张表中取出的值,现在保持以ID为准,DETAILSIZE按照MINUSSIZE成等差增长,MINUSSIZE保持不变,应该怎么实现?谢谢先!!!    
例如:DETAILSIZE初始为10,MINUSSIZE为2;
则查询结果:
   第一行 1,S,10,2
   第二行 2,X,12,2
   第三行 2,L,14,2
   第四行 2,L,16,2create table Y_SBP_SIZE_ITEM
(
  ID                       NUMBER(10) not null,
  STYLE_ID                 NUMBER(10) not null,
  DETAILSIZE               NUMBER(10,4),
  MINUSSIZE                NUMBER(10,4)
);

解决方案 »

  1.   

    楼主举的例子模棱两可的地方太多了。
    你ID举的再多几个好吗,以后永远都是2吗?
    DETAILSIZE =DETAILSIZE +MINUSSIZE吗?
      

  2.   

    DETAILSIZE按照MINUSSIZE成等差增长
    这个规则真没看懂是怎么回事
    好像找不到一个参照点。
      

  3.   

    当然,这两张表式有关联的。。DETAILSIZE,MINUSSIZE都是从另外一张表里取出来的,有初始数据。
      

  4.   

    那太简单啦!
    只需要把table2换成你那‘另一表’的名称就行了。我不确定我理解了你的意思了没,下次发贴尽量详细,把那‘另一表’的数据贴一些出来,把‘目标表’的效果数据也贴一些出来,这样瞬间就有人帮你解决了,CSDN多发贴不收费的。过程:
    create or replace procedure   aaaaaaa(
    b   table2.DETAILSIZE%type,
    c   table2.MINUSSIZE%type
    )
    is
    cursor cur_a is
        select DETAILSIZE,MINUSSIZE  into b,c  from table2  ;
        begin  
        open cur_a;
        loop 
        fetch cur_a into b,c;  
        update Y_SBP_SIZE_ITEM set   DETAILSIZE=b+c  and MINUSSIZE=c;
        exit when cur_name%notfound;    end loop;
        close cur_name;
        end;
      

  5.   

    拉了个东西,没写上关联,你不说,我就默认是id了,真汗,这都不带说的。
    create or replace procedure aaaaaaa(
    b table2.DETAILSIZE%type,
    c table2.MINUSSIZE%type,
    d  table2.id%type
    )
    is
    cursor cur_a is
      select DETAILSIZE,MINUSSIZE,id into b,c,d from table2 ;
      begin  
      open cur_a;
      loop 
      fetch cur_a into b,c;  
      update Y_SBP_SIZE_ITEM set DETAILSIZE=b+c and MINUSSIZE=c where id =d;
      exit when cur_name%notfound;  end loop;
      close cur_name;
      end;
      

  6.   

    其实是想说,流程怎么走知道,只是某些语法不是很清楚之前都有SQL现转oracle