我的问题是如何将单个输出值作为三个不同列值的总和作为所有列的总和
事假请假次数
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/