SQL nie może zwrócić wierszy, które nie istnieją w jakiejś tabeli. Aby uzyskać pożądany efekt, będziesz potrzebować tabeli Tygodnie (WeekNo INT) z jednym wierszem na możliwy tydzień roku (który, IIRC, jest albo 53 lub 54 możliwymi tygodniami, w zależności od tego, jak liczysz).
Następnie DOŁĄCZ do tej tabeli do swoich regularnych wyników za pomocą opcji OUTER JOIN, aby dodać dodatkowe tygodnie.
SELECT DATE_FORMAT(date, 'Y:%X - Week:%V') AS regweek, COUNT(date) as number
FROM YourTable RIGHT OUTER JOIN Weeks ON WEEK(YourTable.date) = Weeks.WeekNo
[Aktualizacja]:Zwróć uwagę na użytkownika COUNT(data) zamiast COUNT(*). SQL nie będzie zawierał wartości NULL w kolumnie daty podczas dodawania COUNT. Ponieważ brakujące tygodnie nie będą zawierały żadnych dat, to poprawnie da ci 0 wydarzeń w tych tygodniach.