现在我用SQL想在存储过程中写语法 将实发算出应发
开始我想将各个临界点的实发全得出来 然后将现有的实发和各个临界点进行比较得出税率和速算
然后按(实发-2000*税率-速算)/(1-税率)算
现在我得出的各个临界点是这样的
set @iGSJB0=2000
set @iGSJB1=500+2000-500*0.05
set @iGSJB2=2000+2000-2000*0.1-25
set @iGSJB3=5000+2000-5000*0.15-125
set @iGSJB4=20000+2000-20000*0.2-375
set @iGSJB5=40000+2000-40000*0.25-1375
set @iGSJB6=60000+2000-60000*0.3-3375
set @iGSJB7=80000+2000-80000*0.35-6375
set @iGSJB8=100000+2000-100000*0.4-10375
按照3800实发 扣除养老1055 应发5027.22
应该得出税率为0.1速算为25
但按照我得出的临界点税率为0.15速算为125
这个临界点该怎么得出
或者还有什么更好的办法?? 我想应该还要把个人扣除的社保和公积金带到那个范围中算临界点的,现在就是不知道怎么个带法 怎么写公式
开始我想将各个临界点的实发全得出来 然后将现有的实发和各个临界点进行比较得出税率和速算
然后按(实发-2000*税率-速算)/(1-税率)算
现在我得出的各个临界点是这样的
set @iGSJB0=2000
set @iGSJB1=500+2000-500*0.05
set @iGSJB2=2000+2000-2000*0.1-25
set @iGSJB3=5000+2000-5000*0.15-125
set @iGSJB4=20000+2000-20000*0.2-375
set @iGSJB5=40000+2000-40000*0.25-1375
set @iGSJB6=60000+2000-60000*0.3-3375
set @iGSJB7=80000+2000-80000*0.35-6375
set @iGSJB8=100000+2000-100000*0.4-10375
按照3800实发 扣除养老1055 应发5027.22
应该得出税率为0.1速算为25
但按照我得出的临界点税率为0.15速算为125
这个临界点该怎么得出
或者还有什么更好的办法?? 我想应该还要把个人扣除的社保和公积金带到那个范围中算临界点的,现在就是不知道怎么个带法 怎么写公式
set @amount = 3800select CASE
WHEN ( @amount - 2000) BETWEEN 0.01 AND 500
THEN ( @amount - 2000) * 0.05
WHEN ( @amount - 2000) BETWEEN 500.01 AND 2000
THEN ( @amount - 2000) * 0.1 - 25
WHEN ( @amount - 2000) BETWEEN 2000.01 AND 5000
THEN ( @amount - 2000) * 0.15 - 125
WHEN ( @amount - 2000) BETWEEN 5000.01 AND 20000
THEN ( @amount - 2000) * 0.20 - 375
WHEN ( @amount - 2000) BETWEEN 20000.01 AND 40000
THEN ( @amount - 2000) * 0.25 - 1375
WHEN ( @amount - 2000) BETWEEN 40000.01 AND 60000
THEN ( @amount - 2000) * 0.30 - 3375
WHEN ( @amount - 2000) BETWEEN 60000.01 AND 80000
THEN ( @amount - 2000) * 0.35 - 6375
WHEN ( @amount - 2000) BETWEEN 80000.01 AND 100000
THEN ( @amount - 2000) * 0.40 - 10375
WHEN ( @amount - 2000) >= 100000
THEN ( @amount - 2000) * 0.45 - 15375
else 0
END
-- 其实临界点没影响,比如工资4000,无论按哪种算法都一样
print (4000 - 2000) * .10 - 25
print (4000 - 2000) * .15 - 125--175.0
--175.00