Как получить зарплату за отработанные часы?

#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)