SQL không thể trả về các hàng không tồn tại trong một số bảng. Để đạt được hiệu quả bạn muốn, bạn sẽ cần một bảng Tuần (Tuần không INT) với một hàng cho mỗi tuần có thể trong năm (IIRC, là 53 hoặc 54 tuần có thể, tùy thuộc vào cách bạn tính).
Sau đó, hãy THAM GIA bảng này vào kết quả thông thường của bạn với THAM GIA NGOÀI TRỜI để nhận thêm tuần.
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
[Cập nhật]:Lưu ý người dùng COUNT (ngày) thay vì COUNT (*). SQL sẽ không bao gồm các giá trị NULL trong cột ngày khi thêm COUNT. Vì các tuần còn thiếu sẽ không có bất kỳ ngày nào trong đó, điều này chính xác sẽ cung cấp cho bạn 0 sự kiện cho các tuần đó.