-- Cartesian Join to display all dimension data (w_all) -- with available fact data (sale in the query shown -- below) WITH q_tab AS (SELECT 1 county, 'Laptop' prod, 2010 year, 7550 sale FROM DUAL UNION SELECT 1 county, 'Server' prod, 2011 year, 4500 sale FROM DUAL UNION SELECT 1 county, 'Laptop' prod, 2012 year, 8250 sale FROM DUAL UNION SELECT 2 county, 'Laptop' prod, 2010 year, 3510 sale FROM DUAL UNION SELECT 2 county, 'Laptop' prod, 2011 year, 4750 sale FROM DUAL UNION SELECT 2 county, 'Server' prod, 2012 year, 1500 sale FROM DUAL UNION SELECT 2 county, 'Laptop' prod, 2013 year, 9475 sale FROM DUAL UNION SELECT 3 county, 'Server' prod, 2010 year, 1960 sale FROM DUAL ), w_year AS (SELECT DISTINCT year FROM q_tab), w_county AS (SELECT DISTINCT county FROM q_tab), w_prod AS (SELECT DISTINCT prod FROM q_tab), w_all AS (SELECT DISTINCT c.county, d.prod, y.year, d.sale FROM q_tab d, w_year y, w_county c, w_prod p) SELECT DISTINCT d.county, d.year, d.prod, t.sale FROM w_all d, q_tab t WHERE d.county = t.county (+) AND d.prod = t.prod (+) AND d.year = t.year (+) ORDER BY d.county, d.prod, d.year;
72945