Cartesian Join
-- 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;
  Cartesian Join to get all dimension data
SQL Model Rules Upsert Sequential Order Iterate(n) query details


Oracle registered trademark of Oracle Corporation.

Last Revised On: July 03, 2014

  72945