我挣扎了好几个小时都没有成功。我创建了一个包含24小时的表,名为hours\u table,其中hours列为00->23,result列全部为0。我有一个带有calls duration的表,我试图将一天中每个时间的calls duration之和分组。
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
不管我从右到左的连接做了什么改变,我只得到outgoingcalls select(第一个没有连接的连接)中的小时数。
我希望得到所有24小时的结果时,从传出的电话没有结果,在某些小时。
1条答案
按热度按时间owfi6suc1#
你应该翻转外部连接。主表应该是
hours_table
而不是OutgoingCalls
,例如: