У меня есть запрос, который должен прочитать записи в таблице leave_requests_2014
и сделать sum()
принятых запросов на отпуск всех записей для каждого работодателя!Группировка записей в запросе mysql дает ошибку
SELECT lr.emp_id employee,
ifnull(MAX(CASE WHEN lr.leave_type =2 THEN (sum((TO_DAYS(lr.end_date) - TO_DAYS(lr.start_date)+1))) END) ,0) annual_leave,
ifnull(MAX(CASE WHEN lr.leave_type =3 THEN (sum((TO_DAYS(lr.end_date) - TO_DAYS(lr.start_date)+1))) END),0) sick_leave
FROM leave_requests_2014 lr
WHERE lr.status =5
GROUP BY lr.emp_id
Запрос, который возвращает следующую ошибку:
#1111 - Invalid use of group function
Я действительно не знаю, что должны быть сгруппированы, чтобы получить желаемый результат!
Пожалуйста, посмотрите на sqlfiddle Это результат я на самом деле нужно
employee annual_leave sick_leave
5 7 2
6 4 1
Это не работает, потому что вы положили функцию 'SUM()' в неположенное место. Переместите его вокруг 'IFNULL' и все, и запрос будет запущен. Я не могу сказать, приведет ли он к ожидаемым результатам. Пожалуйста, обновите вопрос с помощью определения таблицы, некоторых входных данных и результатов, которые вы хотите получить. – axiac