22,210
社区成员
发帖
与我相关
我的任务
分享
税前工资 =
case
when 税后工资 between 2000.0095 and 2475
then (税后工资 - 100)/0.95
when 税后工资 between 2475.009 and 3825
then (税后工资 - 225)/0.9
when 税后工资 between 3825.0085 and 6375
then (税后工资 - 425)/0.85
when 税后工资 between 6375.008 and 18375
then (税后工资 - 775)/0.8
when 税后工资 between 18375.0075 and 33375
then (税后工资 - 1875)/0.75
when 税后工资 between 33375.007 and 47375
then (税后工资 - 3975)/0.7
when 税后工资 between 47375.0065 and 60375
then (税后工资 - 7075)/0.65
when 税后工资 between 60375.006 and 72375
then (税后工资 - 11175)/0.6
when 税后工资 >= 72375.0055
then (税后工资 - 16275)/0.55
else 税后工资
end
CASE
WHEN @tax BETWEEN 0.01 AND 25
THEN @tax / 0.05 + 2000
WHEN @tax BETWEEN 25.01 AND 175
THEN (@tax + 25) / 0.10 + 2000
WHEN @tax BETWEEN 175.01 AND 625
THEN (@tax + 125) / 0.15 + 2000
WHEN @tax BETWEEN 625.01 AND 3625
THEN (@tax + 375) / 0.20 + 2000
WHEN @tax BETWEEN 3625.01 AND 8625
THEN (@tax + 1375) / 0.25 + 2000
WHEN @tax BETWEEN 8625.01 AND 14625
THEN (@tax + 3375) / 0.30 + 2000
WHEN @tax BETWEEN 14625.01 AND 21625
THEN (@tax + 6375) / 0.35 + 2000
WHEN @tax BETWEEN 21625.01 AND 29625
THEN (@tax + 10375) / 0.40 + 2000
WHEN @tax > 29625
THEN (@tax + 15375) / 0.45 + 2000
END
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
create table tb(val decimal(18,2) , rate decimal(18,2))
insert into tb values(1000,0)
insert into tb values(2000,0)
insert into tb values(2500,25)
insert into tb values(4000,175)
insert into tb values(7000,625)
insert into tb values(22000,3625)
insert into tb values(42000,8625)
insert into tb values(62000,14625)
insert into tb values(82000,21625)
insert into tb values(102000,29625)
insert into tb values(200000,73725)
go
select val,应缴纳个人所得税 =
CASE
WHEN ( val- 2000) BETWEEN 0.01 AND 500
THEN ( val - 2000) * 0.05
WHEN ( val- 2000) BETWEEN 500.01 AND 2000
THEN ( val - 2000) * 0.1 - 25
WHEN ( val - 2000) BETWEEN 2000.01 AND 5000
THEN ( val - 2000) * 0.15 - 125
WHEN ( val - 2000) BETWEEN 5000.01 AND 20000
THEN ( val - 2000) * 0.20 - 375
WHEN ( val - 2000) BETWEEN 20000.01 AND 40000
THEN ( val - 2000) * 0.25 - 1375
WHEN ( val - 2000) BETWEEN 40000.01 AND 60000
THEN ( val - 2000) * 0.30 - 3375
WHEN ( val- 2000) BETWEEN 60000.01 AND 80000
THEN ( val - 2000) * 0.35 - 6375
WHEN ( val - 2000) BETWEEN 80000.01 AND 100000
THEN ( val - 2000) * 0.40 - 10375
WHEN ( val - 2000) >= 100000
THEN ( val - 2000) * 0.45 - 15375
else 0
END,
rate ,税前工资 =
case when rate between 0.01 and 25.00 then rate/0.05 + 2000
when rate between 25.01 and 175.00 then (rate+25)/0.1 + 2000
when rate between 175.01 and 625.00 then (rate+125)/0.15 + 2000
when rate between 625.01 and 3625.00 then (rate+375)/0.2 + 2000
when rate between 3625.01 and 8625.00 then (rate+1375)/0.25 + 2000
when rate between 8625.01 and 14625.00 then (rate+3375)/0.30 + 2000
when rate between 14625.01 and 21625.00 then (rate+6375)/0.35 + 2000
when rate between 21625.01 and 29625.00 then (rate+10375)/0.4 + 2000
when rate >= 29625.01 then (rate+15375)/0.45 + 2000
else val
end
from tb
drop table tb
/*
val 应缴纳个人所得税 rate 税前工资
-------------------- ------------------------- -------------------- ----------------------------
1000.00 .0000 .00 1000.000000
2000.00 .0000 .00 2000.000000
2500.00 25.0000 25.00 2500.000000
4000.00 175.0000 175.00 4000.000000
7000.00 625.0000 625.00 7000.000000
22000.00 3625.0000 3625.00 22000.000000
42000.00 8625.0000 8625.00 42000.000000
62000.00 14625.0000 14625.00 62000.000000
82000.00 21625.0000 21625.00 82000.000000
102000.00 29625.0000 29625.00 102000.000000
200000.00 73725.0000 73725.00 200000.000000
(所影响的行数为 11 行)
*/