Databases Reference
In-Depth Information
29
Der horizontale
Warenkorbdatensatz
Der komplette Warenkorbdatensatz muss horizontal angelegt werden. Der Übersichtlichkeit
halber beschränken wir das vorerst auf vier Artikel des Warenkorbs und auf die vier Artikel-
informationen Beschreibung, Farbe, Größe und Produktgruppe. Später weiten wir den
Warenkorb dann aus.
Die Warenkorbinformation, die wir pro Artikel benötigen, erhalten wir mit folgendem Select:
(SELECT s.[line_No], s.[orderNo], a.article_No, a.[description],
a.colorDescription, a.size, a.productGroup
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)sb1
Der Select ist bereits in Klammern gesetzt und mit dem Alias sb1 bezeichnet worden. Sie
benötigen diesen Select insgesamt viermal. Sie müssen ihn also noch dreimal kopieren, den
Alias anpassen ( sb2 , sb3 , sb4 ) und dann alle durch Kommas getrennt untereinander stellen.
Die Informationen, die wir nun pro Bestellung horizontal in einer Zeile ausgeben möchten,
stammen aus allen vier Unterabfragen. Aus der Ersten benötigen wir unbedingt die dis-
tinct sb1.orderNo , die sb1.[description] ,sb1.colorDescription , sb1.size
und die sb1.productGroup . Von der zweiten, dritten und vierten Unterabfrage holen wir
uns nur noch die Artikelinformationen.
Damit man später in der Ergebnistabelle die einzelnen Spalten auch identiizieren kann,
sollte man jeder Spalte noch eine Bezeichnung mitgeben, die oben im Spaltenkopf der
Tabelle steht. Nachfolgend sehen Sie ein Beispiel für den zweiten Artikel.
sb2.[description] Artikel_2 , sb2.colorDescription Color_2 , sb2.size Size_2
, sb2.productGroup Group_2,
Der Join dieser vier Abfragen läut über die orderNo und über die line_no . Folglich sieht
die where -Bedingung folgendermaßen aus:
where sb1.orderNo = sb2.orderNo
and sb1.orderNo= sb3.orderNo
and sb1.orderNo= sb4.orderNo
and sb1.line_No = 1
 
Search WWH ::




Custom Search