Клаузата where WHERE (sales.transDate BETWEEN @fromDate AND @toDate)
ще премахне всички седмици без продажби. Вероятно ще трябва да направите подзаявка, за да изтеглите транзакциите и след това да ги присъедините към вашата таблица със седмици.
SELECT Weeks.WeekNum, SUM(sales.quantity) AS sales
FROM Weeks LEFT OUTER JOIN
(
SELECT *
FROM sales
WHERE (sales.transDate BETWEEN @fromDate AND @toDate)
) sales
ON Weeks.WeekNum = DATEPART(week, sales.transDate)
GROUP BY Weeks.WeekNum