Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

sql cross join - che uso ne ha trovato qualcuno?

Un tipico uso legittimo di un cross join sarebbe un rapporto che mostra ad es. vendite totali per prodotto e regione. Se non sono state effettuate vendite del prodotto P nella regione R, vogliamo vedere una riga con uno zero, anziché semplicemente non mostrare una riga.

select r.region_name, p.product_name, sum(s.sales_amount)
from regions r
cross join products p
left outer join sales s on  s.region_id = r.region_id
                        and s.product_id = p.product_id
group by r.region_name, p.product_name
order by r.region_name, p.product_name;