You can create a table with all possible weeks / years, and then do the following:
SELECT fw.Year AS 'AYear', fk.Week AS 'AWeek', SUM(CASE WHEN t.startdate is not null then 1 ELSE 0 END) FROM FakeWeeks fw LEFT OUTER JOIN
Or, if you feel economical, create two tables, one over the years and one over 1-52, and join both.
source share