У меня есть следующая таблица:
hours | ... | task_assigned | task_deadline | task_completion
----------------------------------------------------------------
123 | ... | 2019-08-01 | - | -
234 | ... | - | 2018-08-01 | 2019-08-01
145 | ... | 2017-08-01 | 2017-08-01 | 2018-01-01
Я хочу рассчитать общее количество часов для каждого года, то есть сгруппировать по годам.
В настоящее время я учитываю только task_completion
field.
Если в поле task_completion
нет значения, запись не включается в вычисление SUM
.
Более подробно, скажем, для year 2019
, строка 1
и1
оба должны быть рассмотрены.Следовательно, общее количество часов должно составлять 123 + 234 = 357
.
И для year 2018
, строка 2 and 3
.
Аналогично, для year 2017
, строка 3
.
SELECT YEAR(task_completion) as year, ROUND(SUM(total_hours), 2) as hours
FROM task
GROUP BY year
HAVING year BETWEEN '$year_from' AND '$year_to'
Набор результатов:
year | hours
--------------------
2017 | <somevalue>
2018 | <somevalue>
2019 | <somevalue>
Как я могу также включить два других поля даты?