英文:
How to get the sum of the three column in MySQL?
问题
问题是如何将单一输出值作为三个不同列值的总和,这三个列值分别是请假总数、病假总数和其他假期总数。以下是获取这个总和的单一查询示例:
SELECT
SUM(casual_leave_days) AS casual_leave,
SUM(vaction_leave_days) AS vaction_leave,
SUM(other_leave_days) AS other_leave
FROM leaveapplydata
WHERE emp_id = '".$_POST["emp_id"]."' AND
(casual_holiday_start LIKE '".$passyear."%' OR
vaction_holiday_start LIKE '".$passyear."%' OR
other_holiday_start LIKE '".$passyear."%');
这个查询将返回在指定年份($passyear)中的员工的请假总数、病假总数和其他假期总数。请注意,你需要将 $_POST["emp_id"]
替换为你的实际变量值,以匹配特定员工的ID。
英文:
My problem is how to get the single output value as three different column value sum as total sum of the all the column
leave count of casual leave
SELECT SUM(casual_leave_days) AS casual_leave
FROM leaveapplydata
WHERE emp_id = '".$_POST["emp_id"]."' AND casual_holiday_start
LIKE '$passyear%'
leave count of vaction leave
SELECT SUM(vaction_leave_days) AS vaction_leave
FROM leaveapplydata
WHERE emp_id = '".$_POST["emp_id"]."' AND vaction_holiday_start
LIKE '$passyear%'
leave count of other leave
SELECT SUM(other_leave_days) AS other_leave
FROM leaveapplydata
WHERE emp_id = '".$_POST["emp_id"]."' AND other_holiday_start
LIKE '$passyear%'
now i want get total holiday count in pass year using single query.how do i do it?
table structure
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
答案1
得分: 1
Summing is commutative, so you could add the three fields and then sum them:
SELECT SUM(casual_leave_days + vacation_leave_days + other_leave_days) AS total_leave
FROM leaveapplydata
-- WHERE some condition
英文:
Summing is commutative, so you could add the three fields and then sum them:
SELECT SUM(casual_leave_days + vacation_leave_days + other_leave_days) AS total_leave
FROM leaveapplydata
-- WHERE some condition
答案2
得分: 0
你可以这样做,
SELECT (casual_leave + vaction_leave + other_leave_days) AS total_leave
FROM (
SELECT SUM(casual_leave_days) AS casual_leave,
SUM(vaction_leave_days) AS vaction_leave,
SUM(other_leave_days) AS other_leave
FROM leaveapplydata
WHERE emp_id = '$_POST["emp_id"]' AND (casual_holiday_start LIKE '$passyear%'
OR vaction_holiday_start LIKE '$passyear%'
OR other_holiday_start ))
英文:
You can do it like this ,
SELECT (casual_leave + vaction_leave + other_leave_days ) AS total_leave
FROM (
SELECT SUM(casual_leave_days) AS casual_leave ,
SUM(vaction_leave_days) AS vaction_leave ,
SUM(other_leave_days) AS other_leave
FROM leaveapplydata
WHERE emp_id = '".$_POST["emp_id"]."' AND (casual_holiday_start LIKE '$passyear%'
OR vaction_holiday_start LIKE '$passyear%'
OR other_holiday_start ) )
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论