Я пытаюсь написать запрос Microsoft SQL Server 2005, который подсчитывает общее значение, сгруппированное по дате с точкой отсечения 10:00 утра?
Например: заказы таблицы
DateReceived Total
01-01-2012 06:10:01 2
01-01-2012 08:10:01 2
01-01-2012 10:10:01 4
02-01-2012 08:00:07 4
02-01-2012 10:00:07 4
Я бы хотел посчитать дневной итог, используя 10:00 утра в качестве точки отсечения, поэтому любые заказы до 10:00 утра отображаются в итогах за предыдущий день, а после 10:00 утра - в общем. на этот день.
Я надеюсь увидеть результаты запроса, такие как:
DateReceived Total
31-12-2011 4
01-01-2012 8
02-01-2012 4
Я знаю, как группировать по дате в Microsoft SQL Server:
SELECT DISTINCT CONVERT(varchar, [DateReceived], 111) AS [dt_DateReceived],
SUM([Total]) AS perday
FROM [Orders]
GROUP BY CONVERT(varchar, [DateReceived], 111)
ORDER BY [DateReceived] DESC
Однако я не уверен, как добавить время отключения в 10:00 с помощью Microsoft SQL Server.
Используя MySQL, я могу добиться этого, группируя по вычитаемому интервалу, однако не знаю, как перевести это на SQL Server:
GROUP BY
DATE(DATE_SUB( DateReceived , INTERVAL 10 HOUR))
Кто-нибудь может посоветовать?
Спасибо,
Jack