You can cross join your filler tables to get all combinations of days and groups, and then do a left join to that. Or you could generate the filler tables on the fly and then do the cross join, for example this:;WITH Days([Day]) AS( SELECT 'Mon' UNION ALL SELECT 'Tue'),Groups([Group]) AS( SELECT 'a' UNION ALL SELECT 'b' UNION ALL SELECT 'c' UNION ALL SELECT 'd' UNION ALL SELECT 'e')SELECT d.*, g.* --, other columns hereFROM (Days d CROSS JOIN Groups g) LEFT JOIN YourOtherTables y ON ....