Dovevo fare una cosa semplice… Verificare il contenuto di due colonne presenti su tabelle diverse… Girovagando su internet ho trovato la funzione coalesce. L’esempio che ho trovato , a fronte di un prezzo di vendita e di un prezzo minimo, calcola il prezzo di vendita (10% di sconto) ed in assenza di prezzi, impone un prezzo simbolico di 5.
SELECT product_id, list_price, min_price,
COALESCE(0.9*list_price, min_price, 5) "Sale"
FROM product_information
WHERE supplier_id = 102050
ORDER BY product_id, list_price, min_price, "Sale";
PRODUCT_ID LIST_PRICE MIN_PRICE Sale
---------- ---------- ---------- ----------
1769 48 43.2
1770 73 73
2378 305 247 274.5
2382 850 731 765
3355 5
La mia query completa è questa:
select coalesce(a.prodotto, b.prodotto) prodotto,
coalesce(a.atotal, 0) atotal,
coalesce(b.btotal, 0) btotal
from
(
select prodotto, count() aTotal
from vend_mensile
group by prodotto )
a full outer join
( select prodotto, count() bTotal
from vend_giornaliere
group by prodotto
) b
on a.prodotto = b.prodotto
where coalesce(a.atotal, 0) <> coalesce(b.btotal, 0);
la full_outer_join serve per recuperare anche le colonne dove no sono presenti dati.
