MySQL 2021 个税计算公式,自定义函数
1、目的
根据最新的新个税计算,自定义mysql函数,实现根据传入参数计算出当月应缴的税额。
2、代码
CREATE DEFINER=`root`@`%` FUNCTION `TaxFunc`( -- 应发工资salary decimal(14,4), -- 起征税额base decimal(14,4), -- 保险insurance DECIMAL(14,4), -- 公积金 housing_fund DECIMAL(14,4), -- 专项扣除special_item DECIMAL(14,4), -- 月份mon int) RETURNS decimal(14,4)
BEGINDECLARE Jan DECIMAL(14,4);DECLARE Feb DECIMAL(14,4);DECLARE Mar DECIMAL(14,4);DECLARE Apr DECIMAL(14,4);DECLARE May DECIMAL(14,4);DECLARE Jun DECIMAL(14,4);DECLARE Jul DECIMAL(14,4);DECLARE Aug DECIMAL(14,4);DECLARE Sep DECIMAL(14,4);DECLARE Oct DECIMAL(14,4);DECLARE Nov DECIMAL(14,4);DECLARE Dece DECIMAL(14,4);DECLARE income DECIMAL(14,4);-- 1月-- 所得额 = (工资 - 起征税额 - 社保 - 公积金 - 专项扣除)* 月份set income = (salary-base-insurance-housing_fund-special_item) * 1;set Jan = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920))))));set Jan = IF(salary <= base, 0, Jan);-- 2月set income = (salary-base-insurance-housing_fund-special_item) * 2;set Feb = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan;set Feb = IF(salary <= base, 0, Feb);-- 3月set income = (salary-base-insurance-housing_fund-special_item) * 3;set Mar = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb;set Mar = IF(salary <= base, 0, Mar);-- 4月set income = (salary-base-insurance-housing_fund-special_item) * 4;set Apr = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar;set Apr = IF(salary <= base, 0, Apr);-- 5月set income = (salary-base-insurance-housing_fund-special_item) * 5;set May = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr;set May = IF(salary <= base, 0, May);-- 6月set income = (salary-base-insurance-housing_fund-special_item) * 6;set Jun = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May;set Jun = IF(salary <= base, 0, Jun);-- 7月set income = (salary-base-insurance-housing_fund-special_item) * 7;set Jul = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun;set Jul = IF(salary <= base, 0, Jul);-- 8月set income = (salary-base-insurance-housing_fund-special_item) * 8;set Aug = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun - Jul;set Aug = IF(salary <= base, 0, Aug);-- 9月set income = (salary-base-insurance-housing_fund-special_item) * 9;set Sep = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun - Jul - Aug;set Sep = IF(salary <= base, 0, Sep);-- 10月set income = (salary-base-insurance-housing_fund-special_item) * 10;set Oct = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun - Jul - Aug - Sep;set Oct = IF(salary <= base, 0, Oct);-- 11月set income = (salary-base-insurance-housing_fund-special_item) * 11;set Nov = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun - Jul - Aug - Sep - Oct;set Nov = IF(salary <= base, 0, Nov);-- 12月set income = (salary-base-insurance-housing_fund-special_item) * 12;set Dece = IF(income <= 36000,income*0.03,IF(income <=144000,income*0.1-2520,IF(income<=300000,income*0.2-16920,IF(income<=420000,income*0.25-31920,IF(income<=660000,income*0.3-52920,IF(income<=960000,income*0.35-85920,income*0.45-181920)))))) - Jan - Feb - Mar - Apr - May - Jun - Jul - Aug - Sep - Oct - Nov;set Dece = IF(salary <= base, 0, Dece);RETURN IF(mon = 1,Jan,IF(mon=2,Feb,IF(mon=3,Mar,IF(mon=4,Apr,IF(mon=5,May,IF(mon=6,Jun,IF(mon=7,Jul,IF(mon=8,Aug,IF(mon=9,Sep,IF(mon=10,Oct,IF(mon=11,Nov,Dece)))))))))));
END
3、测试
如果:一个员工每个月是32000元工资,保险扣3000元,公积金扣1500元,专项附加扣2200元。那么1月到4月的每个月应缴个税金额:
SELECTTaxFunc ( 32000, 5000, 3000, 1500, 2200, 1 ) 一月,TaxFunc ( 32000, 5000, 3000, 1500, 2200, 2 ) 二月,TaxFunc ( 32000, 5000, 3000, 1500, 2200, 3 ) 三月,TaxFunc ( 32000, 5000, 3000, 1500, 2200, 4 ) 四月;
结果:
MySQL 2021 个税计算公式,自定义函数相关推荐
- 【mysql的编程专题⑤】自定义函数
用户自定义函数(user-defined function,UDF) 是一种对mysql的扩展途径,其用法与内置函数相同 创建自定义函数 语法 create function function_nam ...
- mysql: union / union all / 自定义函数用法详解
mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...
- rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)
在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...
- mysql 获取子分类_MySQL 自定义函数获取一个分类的无限级子分类
本方法不易维护,建议取出数据,在程序中递归,例如 https://javascript.net.cn/article?id=654 代码如下:delimiter / DROP FUNCTION IF ...
- mysql 存储过程 sqlstate_mysql存储过程(自定义函数之)declare continue handler for sqlstate '02000' set...
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1; #当fetch游标到了数据库表格最后一行的时候,设置s=1 02000 主要代表的意思可以 ...
- mysql 自定义函数入门_【转】MYSQL入门学习之十三:自定义函数的基本操作
转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能 www.2cto.com 函数能分返回字符串,整数或实 ...
- MySQL自定义函数的方式
MySQL自定义函数的方式 MySQL 有两种方式自定义函数: 使用 Function 使用 Procedure MySQL的Function 开启函数功能 在使用之前,必须要确保 MySQL 已经开 ...
- 2021年大数据Hive(八):Hive自定义函数
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...
- oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。
迁移到mysql中会遇到函数迁移问题,我们可以自定义函数 DELIMITER $$ CREATE FUNCTION new_data_report.to_char(Intnumber int) RET ...
- mysql存储过程与自定义函数
2019独角兽企业重金招聘Python工程师标准>>> #mysql存储过程与自定义函数: delimiter $ 1.最简单的存储过程 create procedure test( ...
最新文章
- August 14, 2009 - Choice
- SpringMVC处理Date类型的成员变量方法
- if语句和缩进部分是一个完整的代码块
- Android studio之NDK integration is deprecated in the current plugin解决办法
- leetcode165. 比较版本号 超级重要的细节
- Mybatis存储过程调用
- Codeforces Round #499 (Div. 2) C. Fly(数学+思维模拟)
- 单片机C语言程序设计实训 100例—基于 8051+Proteus仿真
- adguard home上网慢_老毛子/Padavan设置SmartDNS提速+AdGuard Home去广告之东施效颦
- gg修改器修改数值没有用怎么办_GG修改器详细使用教程
- vue将文件/图片批量打包下载
- mysql数据库可行性_MySQL大企业级应用可行性分析之二
- Windows平台七牛批量上传工具使用教程
- PTA乙级1028 人口普查
- c语言程序 存款利息的计算,【c语言】存款利息的计算
- Spark RDD的分区规则详解
- 极光推送设置别名错误码6002
- 单反相机tf卡用sd卡套稳定吗_解了摄影师的燃眉之急:入手雷克沙TF卡,一卡多用速度超快...
- Palo Alto Networks WAF简介
- 奇思幻想-广告过滤器
热门文章
- 计算机键盘上每一个键的作用,电脑键盘上各种键的作用是什么 电脑键盘上每个键的作用说明【图文】...
- 让你轻松入门的编程学习窍门,JAVA、Python快速学习资料+练手项目
- 【TcaplusDB知识库】快速上手TDR表的增删查改操作
- FBReader集成后,打开书出现空白页面
- 方舟编译器开源,华为自家开源平台面世!(附编译过程)
- CF128A - Statues
- Cousera吴恩达机器学习week7笔记
- 智能人物画像综合分析系统——Day3
- iphone,ipad 尺寸,iphone常用控件尺寸
- 输入法linux debin,Debian下安装搜狗拼音输入法