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 个税计算公式,自定义函数相关推荐

  1. 【mysql的编程专题⑤】自定义函数

    用户自定义函数(user-defined function,UDF) 是一种对mysql的扩展途径,其用法与内置函数相同 创建自定义函数 语法 create function function_nam ...

  2. mysql: union / union all / 自定义函数用法详解

    mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...

  3. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)

    在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...

  4. mysql 获取子分类_MySQL 自定义函数获取一个分类的无限级子分类

    本方法不易维护,建议取出数据,在程序中递归,例如 https://javascript.net.cn/article?id=654 代码如下:delimiter / DROP FUNCTION IF ...

  5. mysql 存储过程 sqlstate_mysql存储过程(自定义函数之)declare continue handler for sqlstate '02000' set...

    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1; #当fetch游标到了数据库表格最后一行的时候,设置s=1 02000 主要代表的意思可以 ...

  6. mysql 自定义函数入门_【转】MYSQL入门学习之十三:自定义函数的基本操作

    转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能  www.2cto.com 函数能分返回字符串,整数或实 ...

  7. MySQL自定义函数的方式

    MySQL自定义函数的方式 MySQL 有两种方式自定义函数: 使用 Function 使用 Procedure MySQL的Function 开启函数功能 在使用之前,必须要确保 MySQL 已经开 ...

  8. 2021年大数据Hive(八):Hive自定义函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...

  9. oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。

    迁移到mysql中会遇到函数迁移问题,我们可以自定义函数 DELIMITER $$ CREATE FUNCTION new_data_report.to_char(Intnumber int) RET ...

  10. mysql存储过程与自定义函数

    2019独角兽企业重金招聘Python工程师标准>>> #mysql存储过程与自定义函数: delimiter $ 1.最简单的存储过程 create procedure test( ...

最新文章

  1. August 14, 2009 - Choice
  2. SpringMVC处理Date类型的成员变量方法
  3. if语句和缩进部分是一个完整的代码块
  4. Android studio之NDK integration is deprecated in the current plugin解决办法
  5. leetcode165. 比较版本号 超级重要的细节
  6. Mybatis存储过程调用
  7. Codeforces Round #499 (Div. 2) C. Fly(数学+思维模拟)
  8. 单片机C语言程序设计实训 100例—基于 8051+Proteus仿真
  9. adguard home上网慢_老毛子/Padavan设置SmartDNS提速+AdGuard Home去广告之东施效颦
  10. gg修改器修改数值没有用怎么办_GG修改器详细使用教程
  11. vue将文件/图片批量打包下载
  12. mysql数据库可行性_MySQL大企业级应用可行性分析之二
  13. Windows平台七牛批量上传工具使用教程
  14. PTA乙级1028 人口普查
  15. c语言程序 存款利息的计算,【c语言】存款利息的计算
  16. Spark RDD的分区规则详解
  17. 极光推送设置别名错误码6002
  18. 单反相机tf卡用sd卡套稳定吗_解了摄影师的燃眉之急:入手雷克沙TF卡,一卡多用速度超快...
  19. Palo Alto Networks WAF简介
  20. 奇思幻想-广告过滤器

热门文章

  1. 计算机键盘上每一个键的作用,电脑键盘上各种键的作用是什么 电脑键盘上每个键的作用说明【图文】...
  2. 让你轻松入门的编程学习窍门,JAVA、Python快速学习资料+练手项目
  3. 【TcaplusDB知识库】快速上手TDR表的增删查改操作
  4. FBReader集成后,打开书出现空白页面
  5. 方舟编译器开源,华为自家开源平台面世!(附编译过程)
  6. CF128A - Statues
  7. Cousera吴恩达机器学习week7笔记
  8. 智能人物画像综合分析系统——Day3
  9. iphone,ipad 尺寸,iphone常用控件尺寸
  10. 输入法linux debin,Debian下安装搜狗拼音输入法