工资计算中的所得税处理时,我想写个更新的触发器,但影响它的列太多,怎么写? create table xx (a int,b int,c as a+b) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ^-^,感谢大家的关注。不能用计算列的。之所以没用计算列是因为,所得税的计算麻烦的啊。有两组CASE才搞定的。 我的实际做法,感觉不错,可移植性也好。深圳龙岗台资企业计税方式:1:计税方案表序号 工资比例 始 止 税率 速算值 1 87 0 1599 0 02 87 1600 2099 5 03 87 2100 3599 10 254 87 3600 6599 15 1755 87 6600 99999 20 6252:自定义函数计税create function test(@a numeric(10,2))returns numeric(10,2)Asbegindeclare @b numeric(10,2)select @b = ( @a * 工资比例/100 - 始) * 税率 / 100 + 速算值 from skm_mstr where floor(@a * 工资比例/100) between 始 and 止return @bend 3:调用Select dbo.test(2000) -- 计算工资额为2000时的税款。 谢谢大家! txlicenhe(马可) 的方案表很好。比我用CASE语句实现代码优化的多。有个问题请教:zjcxc(邹建) “合理的做法应该是,在所有的工资数据录入完成后,调用专门的存储过程来进行工资计算.”按您的说法,如果我有多处有修改工资相关项目的界面和操作,那么,修改的同时他不能看到实发工资的金额! function 是什么东东?不认识的说 当然,将计税的function 放在计算工资的存储过程中最好(我是放在存储过程中的) 这个sql语句难倒我N天了,求救高手 内部SQLSERVER错误 请问用select、set 赋值有什么区别? SQL查询 两个表怎么找出不同的数据?高分 关于MSSQL自动换行的问题 求一个sql语句 求动态语句 E7- 4830 和 E5 -4620 对SQL2008 性能的差异,竟然低档次的CPU, 查询速度还快. 请哥哥姐姐帮忙回这个帖子,谢谢。 如何实现表间更新 请问SQL SERVER的bit类型对应VB里的什么类型?
之所以没用计算列是因为,所得税的计算麻烦的啊。有两组CASE才搞定的。
序号 工资比例 始 止 税率 速算值
1 87 0 1599 0 0
2 87 1600 2099 5 0
3 87 2100 3599 10 25
4 87 3600 6599 15 175
5 87 6600 99999 20 6252:自定义函数计税
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 3:调用
Select dbo.test(2000) -- 计算工资额为2000时的税款。
“合理的做法应该是,在所有的工资数据录入完成后,调用专门的存储过程来进行工资计算.”按您的说法,如果我有多处有修改工资相关项目的界面和操作,那么,修改的同时他不能看到实发工资的金额!
不认识的说