有数据表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)
);
例如: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)
);
你ID举的再多几个好吗,以后永远都是2吗?
DETAILSIZE =DETAILSIZE +MINUSSIZE吗?
这个规则真没看懂是怎么回事
好像找不到一个参照点。
只需要把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;
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;