Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

sql cross join - quelle utilisation quelqu'un en a-t-il trouvé?

Une utilisation légitime typique d'une jointure croisée serait un rapport qui montre par ex. ventes totales par produit et par région. Si aucune vente n'a été effectuée pour le produit P dans la région R, nous voulons voir une ligne avec un zéro, plutôt que de simplement ne pas afficher de ligne.

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;