Databases Reference
In-Depth Information
12.3■Bestandskunden mit Bestell- und
Retourendaten auf Monatsbasis
Wie für die Neukunden benötigen wir auch für die Bestandskunden die Bestell- und Retou-
rendaten. Außerdem möchten wir auch hier einen Monatsbericht erstellen. Der benötigte
Select ist daher fast identisch mit dem Neukunden-Select. Es gibt aber einen entscheiden-
den Unterschied: Bei den Neukunden wurden nur die Erstkäufe ausgegeben. Jetzt werden
alle Käufe pro Monat, außer den Erstkäufen, ausgegeben.
Wie sich der Unterschied im Select auswirkt, ist im Folgenden durch einen Kommentar im
Select markiert. Bis auf diese eine Bedingung sind Neukunden- und Bestandskunden-Select
identisch.
Select DATEPART (yyyy,kd.Datum) Jahr,
DATEPART (mm,kd.Datum) Monat,
count (distinct kd.IRID) Kunden,
count (distinct kd.Bestellung) Bestellungen,
sum (kd.Artikelmenge) Artikelmenge,
sum (kd.Gesamtsumme) Nettosumme,
cast(sum (kd.Artikelmenge)/count (distinct kd.Bestellung)as DECIMAL(10,2))
Warenkorb,
sum (kd.Anzahl_R_Artikel)Artikelretouren,
sum (kd.R_Nettowert)Nettoretourenwert,
cast(sum (kd.Anzahl_R_Artikel)/sum (kd.Artikelmenge)*100 as DECIMAL(10,2))
RQ_Artikel,
cast(sum (kd.R_Nettowert)/sum (kd.Gesamtsumme)*100 as DECIMAL(10,2))
RQ_Nettowert
from
(Select bd.IRID, bd.Datum, bd.Bestellung, bd.Artikelmenge, bd.Gesamtsumme,
rd.Anzahl_R_Artikel, rd.R_Nettowert
from
(Select a.IRID, a.Datum, a.Bestellung, a.Artikelmenge, a.Gesamtsumme
from
(SELECT c.riskID IRID,s.postingDate Datum,s.orderNo Bestellung,
cast (sum (s.quantity)as DECIMAL(10,0))Artikelmenge,
cast (sum (s.amount)as DECIMAL(10,2))Gesamtsumme
from [dbo].[iw_sales]s,[dbo].[iw_customer]c
where s.customerNo = c.customerNo
and s.type = 2
group by c.riskID,s.postingDate,s.orderNo)a,
(SELECT c.riskID IRID,
min (s.postingDate) Erstbestellung
FROM [dbo].[iw_sales]s,[dbo].[iw_customer]c
where s.customerNo = c.customerNo
and s.type = 2
group by c.riskID)b
where a.IRID = b.IRID
and a.Datum > b.Erstbestellung)as bd
Hier steckt der Unterschied zu den Neukunden!
Left OUTER JOIN
(SELECT c.riskID IRID,s.postingDate Datum,
rh.orderNo Bestellung,
cast(sum( rl.quantity)as DECIMAL(10,0)) Anzahl_R_Artikel,
cast(sum (rl.line_amount)as DECIMAL(10,2))R_Nettowert
 
Search WWH ::




Custom Search