Databases Reference
In-Depth Information
Es gibt Saisonkennzeichnungen mit einer gleichmäßigen Bestellfrequenz über das ganze
Jahr. Es gibt aber auch Kennzeichnungen, die in bestimmten Monaten aufällig ot zu inden
sind. Beim abgebildeten Auszug kann man beispielsweise an der Kennzeichnung SC008
erkennen, dass es sich um einen Sommerartikel handelt. Der Verkauf startet im Mai durch
und hält bis August an. Im September, Oktober lacht der Verkauf ab, in den Folgemonaten
sind die Verkäufe allenfalls noch als Restposten zu betrachten.
Trainingsaufgabe: Identifizierung des seasonCodes
Identiizieren Sie die eindeutigen Saison-Codes (Frühjahr, Sommer, Herbst
und Winter).
■
29.4■Eine komplette Warenkorbtabelle
horizontal anlegen
Nun kennen Sie also alle verwertbaren Informationen aus der Artikeltabelle, die im Waren-
korb verarbeitet werden können. Der Basis-Select, der insgesamt 14-mal benötigt wird, sieht
wie folgt aus:
(Select rn.orderNo, rn.article_No, rn.[description],
rn.colorDescription, rn.size,rn.productGroup, rn.seasonCode,
rn.quantity, rn.unitPrice from
(SELECT row_number() over (partition by s.orderNo
order by a.article_No) as lfdNr,
s.orderNo,a.article_No,a.[description],a.colorDescription,
a.size, a.productGroup, a.seasonCode, s.quantity,a.unitPrice
FROM [dbo].[iw_sales]s,[dbo].[iw_article]a
where s.[type] = 2
and s.orderDate between '01.05.2011'and '31.05.2011'
and s.IWAN = a.IWAN)rn
where lfdNR = 1)sb1
Mit
rn
wird der Teil bezeichnet, mit dem die
row_number
als laufende Nummer vergeben
wird. Diesen Alias können wir bei allen 14 Selects beibehalten. Nur der Alias
sb1
(shopping
basket 1) muss fortlaufend geändert werden.
In der großen Tabelle fügen wir alle Artikelinformationen ein, die wir haben. Aus der
sb1
-
Abfrage holen wir uns die
orderNo
. Über die
orderNo
laufen auch alle
OUTER
JOINS
(z. B.
on
sb1.ordeNo
=
sb4.orderNo
). Aus allen weiteren
sb
-Abfragen kommen 14-mal fol-
gende Informationen hinzu:
sbX.article_No artNo_X, sbX.[description]acrticle_X, sbX.colorDescription
color_X, sbX.size size_X, sbX.productGroup productX, sbX.seasonCode seasonX,
sbX.quantity quantity_X, sbX.unitPrice price_X
X
steht hier für eine Zahl zwischen 1 und 14.