Q&A for speakers of other languages learning English
-- Enter Query Title -- Enter Query Description CREATE TABLE #days(Date datetime) INSERT INTO #days SELECT Votes.CreationDate FROM Votes, Users WHERE Users.Id = ##UserId## AND Votes.CreationDate >= Users.CreationDate GROUP BY(Votes.CreationDate) CREATE TABLE #rep(Date datetime, RecentUpvotes int, OldUpvotes int) DECLARE c CURSOR FOR SELECT * FROM #days ORDER BY Date; OPEN c DECLARE @day datetime FETCH NEXT FROM c INTO @day WHILE @@fetch_status = 0 BEGIN WITH v AS (SELECT Votes.CreationDate AS VoteDate, Posts.CreationDate AS PostDate FROM Votes, Posts WHERE Votes.VoteTypeId = 2 AND Votes.PostId = Posts.Id AND Posts.OwnerUserId = ##UserId## AND CAST(FLOOR(CAST(Votes.CreationDate AS float)) AS datetime) = @day) INSERT INTO #rep VALUES(@day, (SELECT COUNT(*) FROM v WHERE VoteDate <= PostDate + 7), (SELECT COUNT(*) FROM v WHERE VoteDate > PostDate + 7)) FETCH NEXT FROM c INTO @day END SELECT * FROM #rep;