I was thinking something similar, but I reasoned that with 20 rows in the table, weeknum would need to appear on 2 or more occasions for each row.
i thought that calculating the existing weeknum from the current date and carrying out some sort of modulus function on this would fix that, but then, starting at week 1, you would loop through 1-20 twice, then 1-13, then back to one again. (does this make sense).
one thing that struck me was to possibly use a stored procedure which would run every time the weeknum changed and increment the active field.??
still scratching my head