SELECT Cast (dateadd(hour, datediff(hour, 0, Call.Time_of_Call), 0) as time)
AS TimeStampHour,Hotlines.Name,Count(Call.ID)
FROM Call, Call_Fixation, Hotlines
WHERE Call.ID = Call_Fixation.id_call
AND Call_Fixation.id_hotline = Hotlines.ID
GROUP BY Hotlines.Name
Есть таблицы: Call, Call_Fixation(id значения других таблиц хранит), и Hotlines. Мне нужно вывести значения как на картинке, но в месте где "13:00:00 Trevor Helpline 2" у меня разделяеться на 2 значения с 1(если добавить в GROUP BY Call.Time_of_Call), если же убрать Call.Time_of_Call из Group By то пишет что Call.Time_of_Call не хранит ни результата агрегованых функций и не используеться в GROUP BY
если у вас будут 2 строки со значениями 13:01:00и 13:02:00 то фактически это разные значения, вы по ним группируете, и получаете разные строки. А выводите в выборке только 13:00:00 для обоих строк. Поэтому и получается, что видите вы одно и тоже значение, но в разных строках.
Вам группировать надо по такому же значению каки в выборке. А просто убирая time_of_call из группировки вы нарушаете sql-синтаксис (хоть mysql и пропускает это мимо в старых версиях). Поэтому и получаете ошибку, что поля из select либо должны присутствовать в группировке, либо использовать агрегатные функции.
select hour(time_of_call) + ':00', name, count(*)
from t1
....
group by hour(time_of call), name
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости