Простая группа, не работающая над полем datetime? - PullRequest
1 голос
/ 08 сентября 2011

Может кто-нибудь помочь мне с этим? Я не уверен, почему моя группа не работает.

SELECT [Date], SUM(counted) as TotalCount
FROM dbo.TableName
GROUP BY [Date], TotalCount
ORDER BY [Date]

результат

Date                        TotalCount

2011-09-07 00:00:00.000 12 
2011-09-07 00:00:00.000 14 
2011-09-07 00:00:00.000 11

Я хочу, чтобы результат выглядел следующим образом

2011-09-07 00:00:00.000 37

Спасибо

Это MSSQLServer 2008, и я хочу сгруппировать по дате и времени.

Ответы [ 3 ]

2 голосов
/ 08 сентября 2011

Не GROUP BY [Date], TotalCount вместо этого вам нужно GROUP BY [Date]

Это может привести к ошибке, если только у вас не было столбца в вашем источнике с таким именем, например как показано ниже.

;WITH TableName([Date], counted, TotalCount) as
(
select '2011-09-07 00:00:00.000',12,1 union all
select '2011-09-07 00:00:00.000',14,2 union all 
select '2011-09-07 00:00:00.000',11,3
)
SELECT [Date], SUM(counted) as TotalCount
FROM TableName
GROUP BY [Date], TotalCount
ORDER BY [Date]
1 голос
/ 08 сентября 2011

Это может быть проблема с временной частью вашего поля. Если вы хотите сгруппировать только по дате, вы можете попробовать следующее:

SELECT CONVERT(VARCHAR(8),[Date],112) [Date], SUM(Counted) TotalCount
FROM dbo.TableName
GROUP BY CONVERT(VARCHAR(8),[Date],112)
0 голосов
/ 08 сентября 2011

Чтобы избежать возможности разных значений из-за тиков, вы можете преобразовать дату в CHAR и сделать группу по.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...