日期:2013-10-27  浏览次数:20384 次


--1:计税方案表
create table  skm_mstr(序号 int,工资比例 int,始 int, 止 int,税率 int,速算值 int )
/*
以下数据为深圳龙岗台资企业计税方式:
(比如工资为4000的计税方式为:4000*87/100 = 3840, 在2100-3599之间,适用于第3条
则计算公式为 (4000*87/100-2100)*10/100 + 25 = 163  )
*/
insert skm_mstr select  1,    87    ,0   ,  1599 , 0 ,0
union all select     2 ,   87   , 1600,  2099 , 5 ,0
union all select     3  ,  87  ,  2100,  3599 , 10 ,25
union all select     4   , 87 ,   3600,  6599 , 15 ,175
union all select     5    ,87,    6600,  99999, 20 ,625
go

--2:自定义函数计税
create function test(@a numeric(10,2))
returns numeric(10,2)
As
begin
declare @b numeric(10,2)
select @b = ( @a * 工资比例/100 - 始) * 税率 / 100 + 速算值 
from skm_mstr  
where floor(@a * 工资比例/100) between 始 and 止
return @b
end 
go

--3:调用
Select dbo.test(4000)  -- 计算工资额为4000时的税款。
/*显示结果为
------------
163.00

(所影响的行数为 1 行)
*/