Q&A for professional and enthusiast programmers
SELECT CAST(CAST(DATEPART(yyyy, v.CreationDate) AS NVARCHAR(4)) + '-' + CAST(DATEPART(mm, v.CreationDate) AS NVARCHAR(2)) + '-01' AS DATETIME) AS [Date], Count (CASE v.VoteTypeId WHEN 1 THEN 1 END) AS [Accept], Count (CASE v.VoteTypeId WHEN 2 THEN 1 END) AS [Up], Count (CASE v.VoteTypeId WHEN 3 THEN 1 END) AS [Down] FROM Votes v INNER JOIN Posts p ON p.Id = v.PostId WHERE p.OwnerUserId = ##user## GROUP BY CAST(CAST(DATEPART(yyyy, v.CreationDate) AS NVARCHAR(4)) + '-' + CAST(DATEPART(mm, v.CreationDate) AS NVARCHAR(2)) + '-01' AS DATETIME) ORDER BY Date ASC