You also need a transaction for each day!
Here's how I set this up for one of my reports:
1) Cross Join the Category table to another Date look up table. This should give you every category for every day
2) Join this dataset to the existing tables via a Left Join on the category AND the date field
-Abhilash