Databases Reference
In-Depth Information
from
(SELECT distinct c.riskID, rh.[shippingAgent]
FROM [dbo].[iw_return_header]rh, [dbo].[iw_customer]c
where rh.customerNo = c.customerNo)v
where v.shippingAgent in ('DHL','HERMES')
group by v.riskID)va
where c.riskID = va.riskID
→
Join zwischen Unterabfrage und darüber liegendem Select
and va.Anzahl = 1) →
Bedingung - nur 1 Eintrag vorhanden
Nun haben wir die Kunden isoliert, die wir für die kommende Auswertung benötigen.
Zunächst benötigen wir aber noch zwei weitere Informationen.
■
26.2■Nettosumme der Bestellungen
pro Kunde
Für jeden Kunden wird die Nettosumme aller bestellten Artikel auf Basis der
riskID
berech-
net. Achten Sie darauf, dass Sie in der Tabelle
iw_sales
den Nettobetrag in der Spalte
amount
inden. Das ist aber nur der Nettobetrag für einen Artikel. Wenn mehrere Artikel
bestellt werden, muss man den Nettobetrag der bestellten Artikel mit der Anzahl der bestell-
ten Artikel (
quantity
) multiplizieren.
SELECT c.riskID, SUM (s.quantity*s.amount) Nettosumme
FROM [dbo].[iw_customer]c,[dbo].[iw_sales]s
where c.customerNo = s.customerNo
and s.[type] = 2
group by c.riskID
■
26.3■Nettosumme der Retouren pro Kunde
In gleicher Weise wird für jeden Kunden auf Basis der
riskID
die Nettosumme aller retour-
nierten Artikel berechnet. In der Tabelle
iw_return_line
gibt es die Spalte
line_amount
.
Hier steht der Nettowert aller retournierten Artikel, sodass eine Multiplikation mit der
Anzahl der Artikel nicht notwendig ist - ganz im Gegenteil, es wäre ein Fehler.
SELECT c.riskID,SUM (rl.line_amount)Nettoretoure
FROM [dbo].[iw_customer]c, [dbo].[iw_return_line]rl
where c.customerNo = rl.customerNo
and rl.[type] = 2
group by c.riskID