SQL get monthly/weekly data sum?

date, group-by, sql, sql-server

Solution

Use

GROUP BY YEAR(<date_column_name>),MONTH(<date_column_name>) --for months

Or

GROUP BY YEAR(<date_column_name>),DATEPART(wk,<date_column_name>) --for weeks

Problem

I get Daily sum of data with these lines? ``` SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T1) as TotalUsageValue,'T1' as UsageType FROM TblSayacOkumalari GROUP BY convert(varchar, okuma_tarihi, 102) UNION ALL SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T2) as TotalUsageValue,'T2' as UsageType FROM TblSayacOkumalari GROUP BY convert(varchar, okuma_tarihi, 102) UNION ALL SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T3) as TotalUsageValue,'T3' as UsageType FROM TblSayacOkumalari GROUP BY convert(varchar, okuma_tarihi, 102) ``` How Can I get SUM of data weekly or mounthly? Is there any turorial about this topic or code example? When I write `MONTH(DATE)` instead of `convert(varchar, okuma_tarihi, 102)` It shows , for example all sum of data in that month. (2010 june value + 2011 june value). I dont want this. I use MSSQL Server 2008. Thanks.

Original source