Я борюсь с этим часами, но безуспешно.
Я создал таблицу, содержащую 24 часа с именем hours_table, со столбцом часов с 00-> 23 и результатом столбца все 0.
У меня есть таблица с продолжительностью звонков, по которой я пытаюсь сгруппировать сумму продолжительности звонков по времени суток.
SELECT date_format(date, '%H' ) as todayhours ,truncate(sum(duration),2)
as result FROM OutgoingCalls a
where date > CURDATE() group by date_format(date, '%H' )
Этот устав обеспечивает:
Todayhours , result
00 , 6
02 , 5
04 , 1
05 , 2
06 , 10
07 , 10
08 , 162 `
Я хочу получить пропущенные часы с 0, как:
Todayhours , result
00 , 6
01 , 0
02 , 5
03 , 0
04 , 1
05 , 2
06 , 10
07 , 10
08 , 162
Таблица часов выглядит так:
hours result
00 0
01 0
02 0
...
23 0
У меня есть этот SQL:
SELECT date_format(date, '%H' ) as todayhours ,truncate(sum(duration),2)
as result FROM OutgoingCalls a
LEFT JOIN hours_table h ON h.hours = date_format(date, '%H' )
where date > CURDATE() group by h.hours
Независимо от того, какие изменения я внес в объединение справа налево, я получаю только те часы, которые были найдены в исходящих вызовах (первое без объединения).
Я хочу получить все 24 часа, когда результат исходящих звонков не даст результата в определенный час.