Reputation: 797
I have a table that lists data every 15 minutes. So my date column data is like '2017-04-18 00:15:00.000'
I'm trying to get sum of those columns for that entire day but my grouping doesn't want to work.
SELECT
Sum(Field 1),
Sum(Field 2),
Sum(Field 3)
FROM
MyTable
WHERE
StartDate >= '2017-04-18'
AND StartDate <= '2017-04-19'
GROUP BY
CAST(StartDate AS DATE)
--GROUP BY CONVERT(CHAR(10),StartDate,103)
--GROUP BY StartDate
The GROUP BY StartDate
gives me records like so:
2017-04-18 08:00:00.000 13 3 22 0
2017-04-18 08:15:00.000 15 1 16 0
2017-04-18 08:30:00.000 14 7 13 0
2017-04-18 08:45:00.000 16 3 18 0
2017-04-18 09:00:00.000 17 4 21 0
I've tried:
GROUP BY CAST(StartDate AS DATE)
as well as
GROUP BY CONVERT(CHAR(10), StartDate, 103)
These above two group by clauses give me the same error message:
The column 'StartDate' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
How would I GROUP
by Date so that I can GROUP
the data by date as '2017-04-18'
Upvotes: 0
Views: 2461
Reputation: 17146
You can try a query like below
SELECT
CAST(StartDate AS DATE) as S
,Sum(Field 1)
,Sum(Field 2)
,Sum(Field 3)
FROM MyTable
WHERE StartDate >= '2017-04-18'
AND StartDate <= '2017-04-19'
GROUP BY CAST(StartDate AS DATE)
Upvotes: 1