#mysql
Вопрос:
я пытаюсь получить зарплату сотрудника в зависимости от отработанного времени.
Я сделал этот запрос, но операция по получению зарплаты работает не очень хорошо
SELECT t.id_usuario as jobber_id,
COUNT(DISTINCT t.nombre_orden_trabajo) as total_tareas,
sum(t.HORA_TERMINO - t.HORA_INICIO) * t.pago_jobber as pago_jober
FROM tareas t join usuarios u
on(t.id_usuario = u.id_usuario)
WHERE u.PAIS = "CL"
GROUP BY t.ID_USUARIO;
Я понимаю это
pago_jober ( зарплата по идентификатору пользователя ) неверен, я даже получаю отрицательные зарплаты.
это мои колонки:
pago_jobber означает зарплату в час
hora_inicio означает время начала работы
hora_termino означает последний час работы
Я вычитал эти два столбца, а затем умножил их на pago_jober (зарплата в час), но результат неверен
Комментарии:
1. попробуйте удалить
sum
функцию и оставить( )
как есть2. Это не работает, братан… я получаю неправильный результат.
3. Можете ли вы опубликовать DDL вашей таблицы, убедитесь, что у вас правильные типы столбцов, особенно для поля hora_*, или у вас могут быть неправильные результаты. Например:
'15:30:00' - '15:00:00'
приведет к нулю.4. Я думаю, что типы данных столбцов правильные, братан, посмотри на них i.ibb.co/4Pqzr4G/datatype.png Они похожи на текст (я думаю, varchar)