SQL GROUP BY не работает при преобразовании smalldatetime в date - PullRequest
0 голосов
/ 23 мая 2018

Я не могу заставить работать GROUP BY при преобразовании smalldatetime в date.У меня есть следующий запрос:

SELECT CAST(XDate AS DATE) as 'TheDate', SUM (TheCount) as count
FROM TheTable
WHERE XDate >= '4/1/2018' AND XDate < '5/1/2018' 
GROUP BY CAST(XDate AS DATE), TheCount

Этот запрос возвращает более 300 000 строк.В последний раз, когда я проверял, в апреле было только 30 дней, так что я ожидал получить максимум 30 строк с суммой за каждый день.Это похоже на то, что SQL все еще учитывает временную долюЯ не уверен, что мне не хватает.Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 23 мая 2018

Удалите thecount из группы по и исправьте константы даты:

SELECT CAST(XDate AS DATE) as TheDate, SUM(TheCount) as count
FROM TheTable
WHERE XDate >= '2018-04-01' AND XDate < '2018-05-01'
GROUP BY CAST(XDate AS DATE)
ORDER BY TheDate;

Я также не рекомендую вам ставить одинарные кавычки вокруг псевдонимов столбцов.Сначала выберите имена идентификаторов, которые не нужно экранировать (например, TheDate).Во-вторых, используйте только одинарные кавычки для констант строки и даты.

...