[英]How to save present, absent list of students in database for attendance management system?
[英]How to get both present and absent students for a year
我需要得到總數。 一年的出席人數和缺席人數:這是我的查詢:
SELECT if( status = 'P',count(level_id), 0) AS present,
if(status='A',count(student_id), 0) AS Absent
FROM attendance WHERE level_id = 'L1' AND date LIKE '2016%'
但這將返回總數。 的學生出席或缺席的部分。
問題是您誤解了COUNT(...)
在查詢中的作用。 如果您真的想根據缺席或在場進行計數,則可以在內部有條件的情況下使用SUM(...)
。
SELECT
SUM(if(status = 'P', 1, 0)) AS Present
SUM(if(status = 'A', 1, 0)) AS Absent
FROM
attendance
WHERE
level_id = 'L1' AND date LIKE '2016%'
如果需要計算元素,則返回1:
SELECT SUM(if( status = 'P',1, 0)) AS present, SUM(if(status='A',1, 0)) AS Absent
FROM attendance WHERE level_id = 'L1' AND date LIKE '2016%'
嘗試使用group by子句,例如:
SELECT
status,
count(student_id) as attendance
FROM attendance
WHERE level_id = 'L1'
AND date LIKE '2016%'
GROUP BY status;
它將為您提供表中每種狀態的計數
這將起作用:
SELECT DISTINCT(student_name), SUM(status = 'P') AS present, SUM(status='A') AS Absent FROM attendance GROUP BY student_name where date LIKE '2016%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.