Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

sql cross join - que uso alguém encontrou para isso?


Um uso legítimo típico de uma junção cruzada seria um relatório que mostra, por exemplo, vendas totais por produto e região. Se nenhuma venda foi feita do produto P na região R, queremos ver uma linha com um zero, em vez de apenas não mostrar uma linha.
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;