oracle - Obtaining the desired result to retrieve non-existent data with a sql query -
i need know if possible retrieve non-existent data sql query. production table have 3 colums 4 records product2 have no media2 record , product3 have no media1 record , show these non-existent record 0 value:
products media cnt ------------------------------------------------------------------------ product1 media1 5 product1 media2 7 product2 media1 30 product3 media2 12 and desired result ( if possible) be:
products media cnt ------------------------------------------------------------------------ product1 media1 5 product1 media2 7 product2 media1 30 product2 media2 0 product3 media1 0 product3 media2 12
as mentiond in comments - have normalize model. technically need cartesian join of unique products , media values, large table unacceptable approach due performance issue:
sql> t 2 ( 3 select 'product1' products,'media1' media, 5 cnt dual union 4 select 'product1','media2', 7 dual union 5 select 'product2','media1', 30 dual union 6 select 'product3','media2', 12 dual 7 ) 8 , 9 cart_t (select p.products, g.media 10 (select unique products t) p, (select unique media t) g) 11 select cart_t.products, cart_t.media, nvl(cnt,0) cnt t , cart_t 12 cart_t.products = t.products(+) 13 , cart_t.media = t.media(+) 14 order 1,2 15 / products media cnt -------- ------ ---------- product1 media1 5 product1 media2 7 product2 media1 30 product2 media2 0 product3 media1 0 product3 media2 12
Comments
Post a Comment