问题描述
- 试编写一个简单SQL脚本程序,创建工资表并完成计算实发工资的任务。
- 假设有职工工资表:
R(职工号,姓名,基本工资,附加工资,房租,水电,应发工资,税款,实发工资)
缴纳个人所得税的规定如下:
个人收入>5000,税率20%
个人收入>2000,税率10%
个人收入>800,税率5%
个人收入<800,免税
工资的计算方法:
(1)应发工资=基本工资+附加工资
(2)采取分段计算税款的算法,超出5000部分收20%,2000~5000之间部分收10%,以此类推。
(3)实发工资=应发工资-税款
试编写一个简单SQL脚本程序,创建工资表并完成计算实发工资的任务。
解决方案
SELECT
st.emp_id
st.emp_name
(st.should_sala +st.extra_sala) AS '实发工资和附加工资合计'
(
CASE
WHEN (st.should_sala +st.extra_sala)>5000 THEN (st.should_sala +st.extra_sala)-((st.should_sala +st.extra_sala)-5000)*0.2
WHEN (st.should_sala +st.extra_sala)2000 THEN (st.should_sala +st.extra_sala)-((st.should_sala +st.extra_sala)-2000)*0.1
WHEN (st.should_sala +st.extra_sala)800 THEN (st.should_sala +st.extra_sala)-((st.should_sala +st.extra_sala)-800)*0.1
WHEN (st.should_sala +st.extra_sala)<800 THEN (st.should_sala +st.extra_sala)
END
) AS '实发工资'
FROM
sala_tab st;
解决方案二:
创建工资表
create table 工资表(字段名 类型......)
实发工资写代后台过程处理一下
update 工资表 set 实发工资 = 应发工资 - 税款 where ....
税款的计算方法通过sql来实现
解决方案三:
可以直接通过case when去update或者查询!demo已经发给你了