- 论坛徽章:
- 0
|
我自己写一个过程,但是运行不了,麻烦看看:
create procedure upstaf()
define v_id integer;
define v_s integer;
define v_m integer;
begin work;
foreach cur_id for select staffnr into v_id from staf where firma=1 group by staffnr;
select min(seilands),max(seilands) into v_s,v_m from staf where firma=1 and staffnr=v_id;
for i in v_s to v_m
if i=v_s then
insert into my_staff values(v_id,1,i);
amount_last=select amount from staf where firma=1 and seiland=i and staffnr=v_id;
else
insert into my_staff values(v_id,amount_last+1,i);
amount_last=select amount from staf where firma=1 and seiland=i-1 and staffnr=v_id;
end if;
end for;
end foreache;
commit work;
end procedure; |
|