Databases Reference
In-Depth Information
SELECT rh.orderNo Retoure,
Cast(sum(rl.[quantity])as DECIMAL(10,0)) Anzahl_R_Artikel
FROM [dbo].[iw_return_header]rh, [dbo].[iw_return_line]rl
where rh.returnNo = rl.returnNo
and rl.type = 2
group by rh.orderNo
Diese beiden Selects müssen Sie mit
Outer
Join
zusammenfassen, damit Sie zu jeder
Bestellung sowohl die Anzahl der bestellten als auch die Anzahl der retournierten Artikel
vorliegen haben. Der
Outer
Join
läut über die Bestellnummer.
Select Bestellungen, Anzahl_Artikel, Anzahl_R_Artikel
from
((SELECT s.orderNo Bestellungen,
Cast(sum([Quantity])as DECIMAL(10,0)) Anzahl_Artikel
FROM [dbo].[iw_sales]s
where s.[Type] = 2
group by s.orderNo)as ord →
Das sind die Bestellungen
FULL OUTER JOIN →
Wir benutzen den FULL OUTER JOIN
(SELECT rh.orderNo Retoure,
Cast(sum(rl.[quantity])as DECIMAL(10,0)) Anzahl_R_Artikel
FROM [dbo].[iw_return_header]rh,[dbo].[iw_return_line]rl
where rh.returnNo = rl.returnNo
and rl.type = 2
group by rh.orderNo) as ret →
Das sind die Retouren
on ord.Bestellungen = ret.Retoure)
→
Join über die Aliasbezeichnungen der Bestellnummer
Schauen Sie sich das Ergebnis an (Bild 18.1). Wenn Sie im Ergebnisfeld scrollen, dann sehen
Sie, dass bei den Bestellungen ohne Retouren
NULL
in der Spalte
Anzahl_R-Artikel
steht.
Bild 18.1■
Anzahl der bestellten und retournierten
Artikel pro Bestellung