Databases Reference
In-Depth Information
6.3■Auswertung nach Jahren und Monaten
Unser erster Bericht ist eine Darstellung der Gesamtwerte. Für einen detaillierteren Bericht
benötigen wir eine Auswertung nach Zeiträumen.
In der Tabelle iw_sales gibt es zwei Datumseinträge, die Spalte orderDate mit dem Bestell-
datum und die Spalte postingDate mit dem Verarbeitungsdatum. Das Verarbeitungsdatum
ist das Datum der Rechnungsstellung. Wir werden uns bei den Analysen und Berichten am
postingDate orientieren.
Wir werden zunächst einen Jahresbericht erstellen. Wir wollen für jedes Jahr die Summe
der Kunden, Bestellungen, Artikelmengen und des Nettoumsatzes berechnen. Dazu müssen
wir die Jahreszahl des postingDates erfassen.
DATEPART (yyyy,s.postingDate)
Mit dem Befehl DATEPART lassen wir uns einen Teil des Datums ausgeben. Welchen Teil wir
ausgeben lassen wollen, bestimmen wir mit dem ersten Eintrag in der Klammer. YYYY ist
das Kennzeichen für eine vierstellige Jahreszahl.
Mit folgendem Befehl erhalten wir die Daten pro Jahr:
Select DATEPART (yyyy,s.postingDate) Jahr,
count (distinct s.customerNo) Kunden,
count (distinct s.orderNo) Bestellungen,
sum (s.quantity) Artikelmenge,
cast (sum (s.amount * s.quantity)as DECIMAL(10,2)) Nettosumme
FROM [dbo].[iw_sales]s
where s.type = 2
group by DATEPART (yyyy,s.postingDate)
Wichtig ist die GROUP BY -Klausel am Ende des Selects. Wenn wir eine Aggregatfunktion
nutzen, wie COUNT , SUM , AVG , MAX , MIN und andere (die wir alle noch kennen lernen wer-
den), und wir das Ergebnis in Gruppen ausgeben wollen (das sind in unserem Fall die
Jahre), dann benötigen wir die GROUP BY -Klausel.
Mit der GROUP BY -Klausel kann für jede Gruppe genau eine Zeile mit Ergebnissen erzeugt
werden. Jede Spalte, die ausgewählt wird, muss in der GROUP BY -Liste erscheinen.
Den Select und das Ergebnis der Abfrage sehen Sie in Bild 6.2.
 Bild 6.2■
Jahresbericht: Select und
Ergebnis
Search WWH ::




Custom Search