请任何人协助我们解决我们的最终挑战者查询。
表名: attendance_tbl
```
nota_id represents present or absent nota_id ='1' => PRESENT
priod_id
1=>Hour-1
2=>Hour-2
3=>Hour-3
4=>Hour-4
5=>Hour-5
如果priod\u id包含值1或2或3或4,那么根据条件,我们将百分比设置为0.25
如果priod\u id包含1或2或3或4或5,那么根据条件我们将百分比设置为0.2。
如果priod\u id大于4,如果它在任何一天的值为5,那么我们将所有1、2、3和4的百分比设置为0.2
如果priod\u id在4中,我们必须将所有1,2,3,4的百分比设置为0.25
例子:
Date : 2018-08-31
priod_id =1 , priod_id =2 priod_id =5
Then set Percentage = 0.2 for 1,2,5
priod_id =1 , priod_id =2 priod_id =4
Then set Percentage = 0.25 for 1,2,4
Please refer to the query we have tried the least.
SELECT *,
IF(nota_id
= '1', Percentage,'0.0') AS ABSENT
from (SELECT *, CASE WHEN (max(priod_id
) > 4) THEN "0.2"
ELSE "0.25"
END as Percentage
FROM attendance_tbl
WHERE DATE(attend_date) BETWEEN '2018-08-01' AND '2018-08-31'
AND sid = '74'
GROUP BY sid, attend_date) t
表结果和结构
1条答案
按热度按时间n7taea2i1#
我们找到了答案。
选择*,
情况(最大(
priod_id
)>4)然后“0.2”或“0.25”结束,以百分比表示,count(priod\u id)作为小时,count(case when nota\u id='1'then 1 end)作为pr from
attendance_tbl
其中日期(参加日期)介于日期('2018-08-01')和日期('2018-08-31')之间,sid='60'组按日期(参加日期)