Пожалуйста, помогите нам решить наш главный вопрос претендента.
Название таблицы: 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_id содержит значение 1, 2, 3 или 4, тогда в зависимости от условия мы установили процентное значение 0,25
если priod_id содержит 1, 2, 3, 4 или 5, то на основании условия мы установили процент 0,2.
если priod_id больше 4, если он имеет значение 5 в любой день, тогда мы установили процентное значение 0,2 для всех 1,2,3 и 4
если priod_id находится в 4, мы должны установить процент 0,25 для всех 1,2,3,4
Пример :
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






Мы нашли ответ.
ВЫБРАТЬ *,
КЕЙС
КОГДА (max (priod_id)> 4) ТО
«0,2»
ЕЩЕ
«0,25»
КОНЕЦ ПРОЦЕНТОВ,
COUNT (priod_id) как ЧАСЫ,
COUNT (CASE
КОГДА nota_id = '1' ТО
1
КОНЕЦ) КАК PR
ОТ attendance_tbl A
ГДЕ ДАТА (посещаемость_даты) МЕЖДУ ДАТЫ ('2018-08-01') И ДАТой ('2018-08-31')
И sid = '60'
ГРУППА ПО ДАТЕ (дата_посещения)
Перефразируйте свой вопрос, указав образец входных данных и ожидаемый результат в формате текст прямо в вашем вопросе. Добавьте четыре или более пробелов в каждую строку данных, чтобы отформатировать ее как код.