;WITH UserSequence AS
(
SELECT
LastEnrolledOn, Users, ROW_NUMBER() OVER(ORDER BY LastEnrolledOn) as 'Sequence'
FROM
(select sum(ct) users, LastEnrolledOn from (select count(*) as ct,LastEnrolledOn from (select serialnumber, LastEnrolledOn ,count(*) over (partition by [lastenrolledon]) as total
FROM Devices) devices group by total,LastEnrolledOn )
devciss group by LastEnrolledOn) WS1enroll
),
UserValues AS
(
SELECT
u.Users AS 'UserValue', u.LastEnrolledOn, u.Sequence
FROM UserSequence u
WHERE Sequence = 1
UNION ALL
SELECT
u.Users + uv.UserValue AS 'UserValue', u.LastEnrolledOn, u.Sequence
FROM UserSequence u
INNER JOIN UserValues uv ON u.Sequence = uv.Sequence + 1
)
SELECT
LastEnrolledOn, Sequence, UserValue AS 'Users'
FROM
UserValues
ORDER BY
Sequence
I have devices table having data from almost 2013 to 2021 but not every date between. I need count total enrollment of every row with adding to next row total. Query is working fine for few dates.
When executing whole table getting.
The statement terminated. The maximum recursion 100 has been exhausted before statement completion.