关于计税的问题,累计计税的问题

现在需要做一个计税的功能,其中有一个专项附加扣除的数据,每个月可能有,可能没有,但是最晚一个月就是需要取的数据
比如张三有567月份的专项附加扣除分别为1000,2000,3000,那在9月份计算税的时候就要取7月的3000专项附加扣除去计算,
专项附加表SPECIALDEDU,有个年月字段是YyYyMM类型,202206,202207这样,计算税金的时候可以获取到202209跟人员编码
存储过程中应该怎么写才能获取最新的3000

把你的月份传进去,然后循环依次往下查询,如果能查到数据就返回,大致这样

 v_code --获取的人员编码
 v_SPECIALDEDU          NUMBER := 0;
 v_num NUMBER :=0;
         loop
            select count(1) into v_num
            from SPECIALDEDU s where  
              s.month=v_caldate and s.code=v_code ; 
            if(v_num=0 ) 
                v_caldate:=add_Months(v_caldate,-1);
                else 
                  --获取最新数据
                  select 专项附加字段 into v_SPECIALDEDU from SPECIALDEDU s where  
              s.month=v_caldate and s.code=v_code;
                   EXIT;
            end if;
        end loop;