mysql - MySQL中如何获取三列的总和?

标签 mysql sql

我的问题是如何将单个输出值作为三个不同列值的总和作为所有列的总和

事假请假次数

SELECT SUM(casual_leave_days) AS casual_leave  
                FROM leaveapplydata
                WHERE emp_id = '".$_POST["emp_id"]."' AND casual_holiday_start
                LIKE '$passyear%'

休假次数

SELECT SUM(vaction_leave_days) AS vaction_leave 
                FROM leaveapplydata
                WHERE emp_id = '".$_POST["emp_id"]."' AND vaction_holiday_start
                LIKE '$passyear%'

其他休假的休假计数

SELECT SUM(other_leave_days) AS other_leave 
                FROM leaveapplydata
                WHERE emp_id = '".$_POST["emp_id"]."' AND other_holiday_start
                LIKE '$passyear%'

现在我想使用单个查询获取过去一年中的假期总数。我该怎么做? 表结构

tbl_id  emp_id  casual_leave_days   casual_holiday_start    casual_holiday_end  vaction_leave_days  vaction_holiday_start   vaction_holiday_end other_leave_days    other_holiday_start other_holiday_end   leave_reason    applicant_sign  actor_sign  supervior_sign  head_sign   
1   23  9   2019-12-23  2019-12-27  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Private 1   1   1   1   
2   23  2   2019-12-24  2019-12-26  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Private 1   1   1   1   
3   23  0   0000-00-00  0000-00-00  2   2019-12-28  2019-12-30  0   0000-00-00  0000-00-00  Sickness    1   1   1   1   
4   23  1   2019-12-29  2019-12-30  1   2019-12-30  2019-12-31  0   0000-00-00  0000-00-00  Private 1   1   1   1   
5   25  1   2019-12-30  2019-12-31  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Other   1   1   1   1   
6   30  1   2020-01-01  2020-01-02  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Private 1   1   1   1   
7   30  5   2019-11-04  2019-11-11  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Private 1   1   1   1   
8   23  1   2020-01-02  2020-01-03  0   0000-00-00  0000-00-00  0   0000-00-00  0000-00-00  Sickness    1   1   1   1   

最佳答案

求和是可交换的,因此您可以将三个字段相加,然后对它们求和:

SELECT SUM(casual_leave_days + vacation_leave_days + other_leave_days) AS total_leave  
FROM leaveapplydata
-- WHERE some condition

关于mysql - MySQL中如何获取三列的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59608011/

相关文章:

sql - 使用编译错误创建的触发器

php - 使用 php 来完成这种类型的工作

sql - oracle中可配置自动提交

mysql - 如何使用SQL的RAND()生成400、450或500?

mysql - 计算第一次看到的值和最后一次看到的值之间的时间差mysql

mysql - 使用 MySQL 了解主键和关系数据库 (phpmyadmin)

即使没有给出关键字,php mysql 查询也会获取数组

php - 当链接可以是父链接或子链接时查询生成父名称

java - Hibernate查询、QueryException异常

用于存储未读帖子和通知的 PHP 想法