根据一个实际的需求案例,描述一下:如何在工资条中添加获取累计工资[字段]和月平均工资[字段]

这个需求存在一个前后端分离的微服务EHR项目中,通过两个SQL语句来实现。业务逻辑:前端调用一个接口,返回两个对象。两个SQL语句就写在MyBatis中。

项目技术栈:前端vue.js + 后端Spring Cloud微服务

1、加入给出一张工资表,除了在前端页面显示这个人的工资条之外,还需要显示这个人的累计工资和月平均工资。

具体的需求如下:

1、首先,用户登录账户,点击工资条page,进入工资条界面,顶部有一个日期选择器,用户可以选择【年月】(没有具体到哪一天)。

2、其次,用户选择那个也,累计工资就计算到那个月,【即使现在是12月份,用户选择的是201805,工资条结果显示5月的工资,累计工资和月平均工资的计算也是截止到5月份,选择时间点后边的不考虑。】

3、最后,判断当前日期,如果当前日期是15号或者15号之前,则显示上个月的工资条;15号之后,则显示当月的工资条。

需求具体解析:

ps:想在项目中完成这个需求,需要掌握的知识点比较全面,需要掌握vue.js框架的知识、Spring Cloud框架、Spring框架、微服务的概念、MyBatis、MySQL等知识。这些就需要自己去学习啦~我们今天的侧重点在MySQL这一部分。

1、工资条中,有很多内容,但是存在与数据库中的工资表中,这样的话,把数据拿来显示就行了。这个不需要去分析。

2、主要是截止到选择的月份,进行计算累计工资和月平均工资。累计的拿出来了,月平均的也就好说了。selectsum(total_theory_wages) AS wages_total ,

count(total_theory_wages) ,

sum(total_theory_wages) / count(total_theory_wages) AS wages_month_average

from

t_wages t

where

employee_id = 88888888

and

(wages_time  between  201801  and  201812)

每一行是一个小块,没对代码进行风格优化。

字段说明:

total_theory_wages 应发工资

wages_month_average 月平均工资

wages_time  年月,例如‘201805’

1、首先,用sum()函数统计累计工资和。

在用count()统计一下次数,注意!这里我没有用截止月份减去起始月份

原因是可能期间有人因为某些原因,没有发工资,取值就会不正确。

这样这个问题就很好的解决了。

2、还有个问题。这里注意一下count(total_theory_wages)为0的情况,如果一个人上个月刚刚入职,还没法工资,虽然在前台看不到工资条数据(对于前台来说,是正确的现象;但是后台是会报错的。)

3、最后,判断当前日期,这个在前端用JavaScript写个if{}else{}代码块控制一下即可。

mysql中工资表,MySQL操作工资表,获取累计工资和月平均工资相关推荐

  1. Mysql中的行级锁、表级锁、页级锁

    转载自 Mysql中的行级锁.表级锁.页级锁 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按 ...

  2. 在MySQL中如何有效的删除一个大表?

    在MySQL中如何有效的删除一个大表? Oracle大表的删除: http://blog.itpub.net/26736162/viewspace-2141248/ 在DROP TABLE 过程中,所 ...

  3. mysql查看当前数据库中表明,MySQL中查看当前数据库的所有表

    关键词 MySQL数据库 表 摘要 本文介绍在MySQL数据库中,如何列出并查看当前数据库的所有表. 本文介绍在MySQL数据库中,如何列出并查看当前数据库的所有表. 我们创建一个数据库之后,数据库里 ...

  4. mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

    <Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...

  5. mysql 季度最后一天,MYSQL中取目前年份的第一天和当前周,月,季度的第一天/最后一天...

    MYSQL中取当前年份的第一天和当前周,月,季度的第一天/最后一天 mysql 获取当年第一天的年月日格式:SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(n ...

  6. 7月平均工资下来,Java程序员哭笑不得!

    2020 魔幻开局,不少企业开始缩减招聘名额,更别说涨薪了!据第三方统计,今年 7 月程序员平均工资为 14357 元.作为第一编程语言的 Java,平均工资 14448 元(6 月为 14433 元 ...

  7. 常州和南京计算机工资水平,南京和苏州哪一个城市工资高?六张图带你看懂江苏各市平均工资情况...

    原标题:南京和苏州哪一个城市工资高?六张图带你看懂江苏各市平均工资情况 中商情报网讯:2017年,江苏省城镇非私营单位就业人员年平均工资为78267元,与2016年相比名义增长9.4%.城镇私营单位就 ...

  8. 编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元。

    工资系统 题目要求 设计思路 代码 运行结果 题目要求 附:题目来源于尚硅谷 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加1 ...

  9. 对象、继承、封装、多态、抽象类的组合应用:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他。

    实验题目: 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个Employee对象的生日,则将在该雇员的工资上增加100元发给他. 实验目的: 对象.继承.封装.多态.抽象类的组合 ...

最新文章

  1. PostgreSQL SQL 语言:并行查询
  2. SAP IDoc E1EDP04 Z8 数据错误之对策
  3. 使用Zookeeper实现leader选举-Leader Latch
  4. log4cplus导致主进程不能退出问题解决
  5. 静态时序分析——单周期
  6. LeetCode 2034. 股票价格波动(set + map)
  7. SemVLP 单流和双流Transformer哪个好?阿里:我全都要!提出带可插拔模块的Transformer结构...
  8. 基于Servlet的技术问答网站系统实现(附源码)
  9. Android 一个页面上下两个ListView的页面显示
  10. 前端 如何获取response headers 中的set-cookie:_如何使用moco框架搭建接口mock服务
  11. 《我想进大厂》之分布式锁夺命连环9问 | 大理版人在囧途
  12. 串行通信又称为点对点通信(PtP),其中点对点如何理解
  13. 骐俊CAT1模组 - MQTT接入腾讯云平台篇
  14. 游戏部署安全策略方案
  15. WPS(word)中插入表格时怎么单独调整一个单元格子的大小
  16. 30、T5L 迪文屏 C51开发之 ADC模数转换
  17. HTTP Status 500 - Failed to evaluate expression 'ROLE_USER'
  18. 南京审计计算机高考收分多少,南京审计大学2019年高考在各省的投档分数线是多少...
  19. 编写一个类Shop(商店)、内部类InnerCoupons(内部购物券)
  20. 2022-10-11(一、远程命令执行和系统命令执行)

热门文章

  1. Go 笔记之为什么要学 Go
  2. 移动平均和全月平均的适用
  3. 八股文--Java基础下
  4. 什么是数字化供应链系统?企业如何利用数字化供应链系统增加销售渠道?
  5. “熬夜”的地道英文说法
  6. ssh登录The authenticity of host localhost can‘t be established.错误
  7. 【JqGrid】JqGrid本页合计+总合计(统计)
  8. 2022,6G正在升温
  9. ABB 机器人二次开发另一种方式 socket通信
  10. 视频内容加密封装技术研究