I have a table with sales information
|product | sales | date|
You do this by using
cross join to get all the rows and then
left join to pull in the values.
Assuming you have some data for each week:
select p.product, d.date, coalesce(s.sales, 0) as sales from (select distinct product from sales) p cross join (select distinct date from sales) d left join sales s on s.product = p.product and s.date = d.date;
If you have tables of products and dates, you can use those instead of the subqueries.