Я думаю, вы хотите что-то вроде:
SELECT pc.*, d.*,
COALESCE(p.revenue, 0) as revenue,
. . .
FROM DATE d CROSS JOIN
(SELECT DISTINCT product_group, customer FROM PRODUCTS p) pc LEFT JOIN
PRODUCTS p
ON p.YEAR = d.YEAR AND p.MONTH = d.MONTH AND
p.product_group = pc.product_group AND p.customer = pc.customer;