Reputation: 208
SELECT YEAR(OrderDate) 'Year', SUM(TotalDue)
FROM Sales
GROUP BY OrderDate
Order BY OrderDate
How do I add each year together as ONE row? I wrote the query above, but the result still has the TotalDue by Year as individual rows. For example
Upvotes: 2
Views: 23761
Reputation: 1
You need to re-group results
SELECT y, Sum(s) from ( SELECT YEAR(OrderDate) as y , SUM(TotalDue) as s FROM Sales GROUP BY OrderDate ) group by y Order BY y
Upvotes: 0
Reputation:
You have a problem in the GROUP BY statement because it operates on a selected column:
SELECT YEAR(OrderDate) theYear, SUM(Due) TotalDue
FROM Sales
GROUP BY theYear --Here you can either order by TotalDue or by theYear,
-- otherwise you will get the errors you mentioned
Upvotes: 4
Reputation: 5672
SELECT YEAR(OrderDate) 'Year', SUM(TotalDue)
FROM Sales
GROUP BY YEAR(OrderDate)
Upvotes: 0
Reputation: 696
You should group by the year of the order date and no the OrderDate itself.
SELECT YEAR(OrderDate) AS `Year`, SUM(TotalDue)
FROM Sales
GROUP BY YEAR(OrderDate)
Order BY Year
Upvotes: 1
Reputation: 12628
You should GROUP BY
Year, not OrderDate:
SELECT YEAR(OrderDate), SUM(TotalDue)
FROM Sales
GROUP BY YEAR(OrderDate)
Order BY OrderDate
Upvotes: 4