.编写函数计算个人所得税:个人收入(除去各项保险及住房公积金)外超过1600元的,需交个人所得税。用月收入减去1600,看其余额是多少。
余额在500元及500元以下的,用余额乘以5%。
余额在501—2000元的,用余额乘以10%-25元。
余额在2001—5000元的,用余额乘以15%-125元。
余额在5000—20000元的,用余额乘以20%-375元。
余额在500元及500元以下的,用余额乘以5%。
余额在501—2000元的,用余额乘以10%-25元。
余额在2001—5000元的,用余额乘以15%-125元。
余额在5000—20000元的,用余额乘以20%-375元。
return number
IS
v_tax NUMBER(10);
begin
IF uf_in<1600 THEN
dbms_output.put_line('收入有点低,需要努力!!');
ELSIF(uf_in-1600)>=0 AND(uf_in-1600)<=501 THEN
v_tax := (uf_in-1600)*0.05;
ELSIF(uf_in-1600)>=500 AND(uf_in-1600)<=2000 THEN
v_tax := (uf_in-1600)*0.10-25;
ELSIF (uf_in-1600)>=2001 AND (uf_in-1600)<=5000 THEN
v_tax := (uf_in-1600)*0.15-125;
ELSIF (uf_in-1600)>=5001 AND(uf_in-1600)<=20000 THEN
v_tax := (uf_in-1600)*0.20-375;
END IF;
return(v_tax);
end persontax;
RETURN NUMBER
IS
v_money NUMBER(18,2);
v_rate NUMBER(18,2);
BEGIN
v_money := v_sal - 1600; -- 月收入不足1600的,无个人所得税一说
IF v_money < 0 THEN
v_rate := 0;
ELSIF v_money > 0 AND v_money <= 500 THEN
v_rate := v_money * 0.05;
ELSIF v_money > 500 AND v_money <= 2000 THEN
v_rate := v_money * 0.1 - 25;
ELSIF v_money > 2000 AND v_money <= 5000 THEN
v_rate := v_money * 0.15 - 125;
ELSIF v_money >= 5000 AND v_money <= 2000 THEN
v_rate := v_money * 0.20 - 375;
ELSE
v_rate := v_money * 0.25 - 575;
END IF;
return v_rate;
EXCEPTION
WHEN OTHERS
THEN
RETURN -1;
END;
/