Databases Reference
In-Depth Information
Dann selektieren wir die Retourendaten:
select rl.customerNo,
count (distinct rl.returnNo)Retouren, sum (rl.quantity)Ret_Artikel,
sum (rl.line_amount)Ret_Nettowert
from
[dbo].[iw_return_line]rl
where rl.type = 2
group by rl.customerNo
Wir setzen um jeden dieser Selects eine Klammer. Die Bestelldaten bekommen den Alias a ,
die Retourendaten den Alias b . Beide Selects werden mit LEFT OUTER JOIN on a.custo-
merNo = b.customerNo verbunden. Darüber setzen wir die gemeinsame Auswertung aus
beiden Selects.
Select a.riskID, count (distinct a.customerNo) Konten,
sum (a.Bestellungen)Bestellungen, sum (a.Artikel) Artikel,
sum (a.Nettosumme)Nettosumme, sum (b.Retouren)Retouren,
sum (b.Ret_Artikel)Ret_Artikel,sum (b.Ret_Nettowert)Ret_Nettowert
from ...
Diese Abfrage benötigt die Klausel group by a.riskID . Das Ganze sieht dann wie folgt
aus:
Select a.riskID, count (distinct a.customerNo) Konten,
sum (a.Bestellungen)Bestellungen, sum (a.Artikel) Artikel,
sum (a.Nettosumme)Nettosumme, sum (b.Retouren)Retouren,
sum (b.Ret_Artikel)Ret_Artikel, sum (b.Ret_Nettowert)Ret_Nettowert
from
(SELECT c.riskID, s.customerNo,
count (distinct s.orderNo)Bestellungen, sum (s.quantity)Artikel,
cast (sum (s.amount *s.quantity)as decimal(10,2))Nettosumme
FROM [dbo].[iw_customer]c,[dbo].[iw_sales]s
where c.customerNo = s.customerNo
and s.type = 2
group by c.riskID, s.customerNo)a
left outer join
(select rl.customerNo,
count (distinct rl.returnNo)Retouren, sum (rl.quantity)Ret_Artikel,
sum (rl.line_amount)Ret_Nettowert
from
[dbo].[iw_return_line]rl
where rl.type = 2
group by rl.customerNo)b
on a.customerNo = b.customerNo
group by a.riskID
Der OUTER JOIN hat funktioniert und die Kunden ohne Retouren sind nun wieder in der
Ergebnisliste vorhanden (Bild 14.11 auf der nächsten Seite).
 
Search WWH ::




Custom Search