Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Cross Join - welche Verwendung hat jemand dafür gefunden?

Eine typische legitime Verwendung eines Cross Joins wäre ein Bericht, der z. Gesamtumsatz nach Produkt und Region. Wenn in Region R keine Verkäufe von Produkt P getätigt wurden, möchten wir eine Zeile mit einer Null sehen, anstatt einfach keine Zeile anzuzeigen.

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;