View
6
Download
1
Category
Preview:
Citation preview
KOMPLEXE SQL-ABFRAGENAM BEISPIEL EINES ONLINE-SHOPS
Inkl. Testdatenbank mit über zwei Millionen Datensätzen
Auf DVD: 2,2 Millionen Datensätze
Vom KPI-Reporting bis zum analytischen CRM
EXTRA: Mit kostenlosem E-Book
iron WERTHER
BUSINESSINTELLIGENCE
Werther
Business Intelligence
Bleiben Sie auf dem Laufenden!
Der Hanser Computerbuch-Newsletter informiert Sie regelmäßig über neue Bücher und Termine aus den verschiedenen Bereichen der IT. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unterwww.hanser-fachbuch.de/newsletter
Iron Werther
Business IntelligenceKomplexe SQL-Abfragen am Beispiel eines Online-Shops
inkl. Testdatenbank mit über zwei Millionen Datensätzen
Der Autor:Iron Werther, Taufkirchen
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek:Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt.Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2013 Carl Hanser Verlag München, www.hanserfachbuch.deLektorat: Sieglinde SchärlCopy editing: Kathrin Powik, LassanHerstellung: Irene WeilhartUmschlagdesign: Marc MüllerBremer, www.rebranding.de, MünchenUmschlagrealisation: Stephan RönigkGesamtherstellung: Kösel, KrugzellAusstattung patentrechtlich geschützt. Kösel FD 351, PatentNr. 0748702Printed in Germany
PrintISBN: 9783446435803EBookISBN: 9783446436350
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI
1 Die Testdatenbank iw_shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Die Stammdatentabelle iw_customer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Die Bestelldatentabelle iw_sales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Die Artikeltabelle iw_article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Die Zahlungsinformationstabelle iw_payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Die RetourenKopftabelle iw_return_header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 Die Retourentabelle iw_return_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.7 Die CodeTabelle iw_code_reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Installation einer funktionsfähigen SQL-Datenbank . . . . . . . . . . . . . . . 72.1 Systemvoraussetzungen für den Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . 72.2 Produktinformationen zum SQL Server 2012 und SQL Server 2008 R2 . . . . . . . . 82.3 Download und Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Erstellung einer Testdatenbank und Import der mitgelieferten Daten 113.1 Eine neue Datenbank anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Tabellen importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Ansicht der Tabellen auf der Testdatenbank iw_shop . . . . . . . . . . . . . 25
5 Der KPI (Key Performance Indicator)-Report . . . . . . . . . . . . . . . . . . . . . 295.1 Erste Selektionen mit TSQL zur Ermittlung der wichtigsten Kennzahlen . . . . . . 295.2 Darstellung der SelectBefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.3 Anzahl der Kunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.4 Anzahl der Bestellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.5 Anzahl der bestellten Artikel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.6 Der Warenwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.7 Der Warenbruttowert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.8 Der Warennettowert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Inhalt
VI Inhalt
6 Erstellung eines KPI-Reports auf Jahres- und Monatsbasis . . . . . . . . . 396.1 Der erste Bericht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2 Kommastellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.3 Auswertung nach Jahren und Monaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.4 Warenkorbwert und Anzahl der Artikel im Warenkorb . . . . . . . . . . . . . . . . . . . . . . 43
7 Erstellung eines KPI-Reports auf Wochenbasis . . . . . . . . . . . . . . . . . . . 477.1 Manuelle Anpassung der Wochen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2 ISOWeek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8 Retourendaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538.1 Retourendaten und RetourenKopfdaten: Zwei Tabellen miteinander verbinden 54
8.1.1 INNER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.2 FULL OUTER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.3 LEFT OUTER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.4 RIGHT OUTER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.1.5 Einfacher Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.2 Ermittlung der Retourenquoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.2.1 NetsalesRetourenquote pro Monat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.2.2 Echte Retourenquote pro Monat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9 Unique Kunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.1 Wie erkennt man unique Kunden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.2 Durchschnittliche Anzahl der Konten pro Kunde . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9.2.1 Die Aggregatfunktion AVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.2.2 Ergebnis in numerische Werte umwandeln . . . . . . . . . . . . . . . . . . . . . . . . . 659.2.3 Anzahl der Konten durch einfache Division . . . . . . . . . . . . . . . . . . . . . . . . . 66
10 KPI-Report auf Basis uniquer Kunden . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.1 KPIReport mit Retourendaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6910.2 Monatsreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7010.3 Warenkorb und Quotenberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.4 Wochenreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
11 Neukunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7511.1 Identifizierung der Neukunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7511.2 Neukunden – der erste Schritt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7511.3 Neukunden pro Monat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7611.4 Bestellungen der Neukunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7711.5 Neukundenbestelldaten – die endgültige Version . . . . . . . . . . . . . . . . . . . . . . . . . 8111.6 Retourendaten hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Inhalt VII
12 Bestandskunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.1 Identifizierung der Bestandskunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.2 Bestandskunden pro Monat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9112.3 Bestandskunden mit Bestell und Retourendaten auf Monatsbasis . . . . . . . . . . . 92
13 Gesamtkunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9513.1 Prüfung der Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
14 Der Kundenmonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9914.1 Lebensdauer, Aktivität und Kundenwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9914.2 Die Lebensdauer (Customer Lifetime) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9914.3 Die exakte Jahresberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10314.4 Auswertung der Lebensdauer nach Monaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10414.5 Einteilung in Gruppen mit CASE WHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10614.6 Die Aktivität (Customer Activity) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
14.6.1 Bestelldaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11014.6.2 Retourendaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11014.6.3 Versand und Retourenkosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
15 Der Kundenwert (Customer Value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11715.1 Customer Lifetime Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12015.2 Create table – eine neue Tabelle anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12215.3 Durchschnittlicher Zeitraum zwischen den Bestellungen, Kauffrequenz . . . . . . 12515.4 Gruppierung der Kauffrequenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12615.5 Segmentierung des Kundenwerts (Customer Value) . . . . . . . . . . . . . . . . . . . . . . . 12715.6 Gruppierung des Kundenwerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
15.6.1 Eine neue Spalte in einer Tabelle hinzufügen . . . . . . . . . . . . . . . . . . . . . 13015.6.2 Ändern der Datenwerte in einer Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . 131
15.7 Auswertungen nach Kundenwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
16 Die Bestellhistorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13516.1 Row_Number over Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13516.2 Die Bestellhistorie als Tabelle anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13716.3 Auswertungen der Bestellhistorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
16.3.1 Selfjoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13816.3.2 OUTER JOIN beim SELFJOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
16.4 Auswertung des zeitlichen Abstands zwischen den Bestellungen . . . . . . . . . . . . 14116.5 Entwicklung der Käufe nach Warenwert pro Kauf . . . . . . . . . . . . . . . . . . . . . . . . . 14216.6 Entwicklung der Retourenquote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17 Analyse der Kunden nach Alter, Geschlecht und PLZ-Bereich . . . . . . 14517.1 Die Funktionen LEFT und RIGHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14617.2 GETDATE – das aktuelle Tagesdatum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
VIII Inhalt
17.3 Bildung von Altersgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14817.4 Kundenwert nach Altersgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15017.5 Prozentanteil der Altersgruppen in jeder Wertegruppe . . . . . . . . . . . . . . . . . . . . 152
18 Die Retourenanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15518.1 Null, Teil und Vollretouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15518.2 Identifizierung von Null, Teil und Vollretouren mit CASE WHEN . . . . . . . . . . . 15718.3 Ausgabe des Gesamtwerts von Null, Teil und Vollretouren . . . . . . . . . . . . . . . . 15818.4 Null, Teil und Vollretouren pro Monat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
19 Das Retourenverhalten der Kunden . . . . . . . . . . . . . . . . . . . . . . . . . . . 16119.1 Retouren pro Kunde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16119.2 Retourenquote pro Kunde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16219.3 Anzahl der Kunden nach Retourenquote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16519.4 Identifizierung von Kunden mit sehr hoher Retourenquote . . . . . . . . . . . . . . . . . 16619.5 Kundengruppen oder Cluster nach Retourenquote . . . . . . . . . . . . . . . . . . . . . . . . 167
20 Renner, Penner, Retourentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17120.1 Auswertungen auf Basis der Artikelnummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
20.1.1 EAN/GTIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17220.2 Bestellungen mit Artikelnummer und Artikelbeschreibung . . . . . . . . . . . . . . . . . 17220.3 Retouren mit Artikelnummer und Artikelbeschreibung . . . . . . . . . . . . . . . . . . . . 17320.4 Bestellungen und Retouren zusammenfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17420.5 Artikel, die mehrfach verkauft wurden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17620.6 Retourenquoten in den Report aufnehmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17720.7 Die Renner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17920.8 Die Penner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18120.9 Die Retourentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
21 Retourengründe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18321.1 Übersetzung der RetourenCodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18421.2 Retourengründe auf Basis des eindeutigen Artikels . . . . . . . . . . . . . . . . . . . . . . . 185
21.2.1 Retourengründe auf Basis der Artikelnummer . . . . . . . . . . . . . . . . . . . . 18621.2.2 Retourengründe auf Basis des ArtikelStyles . . . . . . . . . . . . . . . . . . . . . . 18621.2.3 Inhalt zweier Spalten zu einem Ergebnis zusammenführen . . . . . . . . . 186
21.3 Retourengründe auf Kundenbasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
22 Der Retourentreiber-Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19122.1 Bestellungen auf Stylebasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19122.2 Retouren auf Stylebasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19222.3 Zusammenführung von Bestellungen und Retouren . . . . . . . . . . . . . . . . . . . . . . . 19222.4 Berechnung der Retourenquoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19322.5 Einschränkungen nach Retourenquote und Anzahl der verkauften Artikel . . . . 19422.6 Retourengründe einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Inhalt IX
23 Retourentreiber-Report mit Versandzeitraum . . . . . . . . . . . . . . . . . . . 19923.1 Die Bestellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19923.2 Die Retouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19923.3 Die Retourengründe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20023.4 Zusammenführung der drei Selects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20023.5 Die Retourenquoten pro Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20223.6 Einschränkungen nach Retourenquote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
24 Von der Warenkorbgröße abhängige Retouren . . . . . . . . . . . . . . . . . . 20524.1 Durchschnittliche Anzahl der retournierten Artikel auf Basis der
bestellten Artikelmenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20724.2 Durchschnittliche Retourenquote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
25 Einfluss der Zahlarten auf die Retouren . . . . . . . . . . . . . . . . . . . . . . . . 21325.1 Zahlarten im ShopSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21325.2 Zahlarten in der Retourentabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21525.3 Durchschnittliche Anzahl der retournierten Artikel pro Zahlart . . . . . . . . . . . . . 216
26 Einfluss der Versender auf die Retouren . . . . . . . . . . . . . . . . . . . . . . . 21926.1 Unterabfrage mit EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22026.2 Nettosumme der Bestellungen pro Kunde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22126.3 Nettosumme der Retouren pro Kunde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22126.4 Zusammenführung der Nettosummen und Versender pro Kunde . . . . . . . . . . . . 22226.5 Retourenquote pro Versender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
27 Bestellung von mehreren identischen Artikeln . . . . . . . . . . . . . . . . . . 22527.1 Retouren bei mehreren identischen Artikeln im Warenkorb . . . . . . . . . . . . . . . . 22527.2 Bestellung mehrerer identischer Artikel unterschiedlicher Größen . . . . . . . . . . 22727.3 Selfjoin eines Selects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
28 Warenkorb und Warenkorbanalysen . . . . . . . . . . . . . . . . . . . . . . . . . . . 23128.1 Produktgruppen in der Artikeltabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
28.1.1 Die Vergleichsoperation LIKE/NOT LIKE . . . . . . . . . . . . . . . . . . . . . . . . . 23228.1.2 Das %Zeichen als Platzhalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23328.1.3 Weitere Platzhalter für einzelne Zeichen . . . . . . . . . . . . . . . . . . . . . . . . . 23328.1.4 Die Zeichenfolgefunktionen LOWER/UPPER . . . . . . . . . . . . . . . . . . . . . . 233
28.2 Die Warenkorbdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23428.3 Auswertungen aus der Warenkorbtabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23628.4 Warenkörbe mit identischen Artikeln in unterschiedlichen Größen
oder Farben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23628.5 Warenkörbe mit unterschiedlichen Artikeln der gleichen Produktgruppe . . . . . 239
X Inhalt
29 Der horizontale Warenkorbdatensatz . . . . . . . . . . . . . . . . . . . . . . . . . . 24129.1 Artikelkombinationen im Warenkorb (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24429.2 Ordnung nach der row_number over partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24729.3 Die Saisonkennzeichnung (SeasonCode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24929.4 Eine komplette Warenkorbtabelle horizontal anlegen . . . . . . . . . . . . . . . . . . . . . . 25029.5 Die Warenkorbtabelle weiterverarbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
29.5.1 Export der Daten für externe Analyseprogramme . . . . . . . . . . . . . . . . . 25529.5.2 Den Warenkorb als neue Tabelle anlegen . . . . . . . . . . . . . . . . . . . . . . . . . 25629.5.3 Daten in die Datenbank importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
29.6 Artikelkombinationen im Warenkorb (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
30 Zahlungsinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26530.1 Offene Posten – Mahnstufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26630.2 Überfällige ausstehende Zahlungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26730.3 Trennung von Zahlung und Retouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
31 Die Kampagnentabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27131.1 Zeichen mit den Funktionen LEFT oder RIGHT unterdrücken . . . . . . . . . . . . . . . 27331.2 Umwandeln des Datentyps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
32 Selektion einer Zielgruppe für den Newsletter . . . . . . . . . . . . . . . . . . 277
Schlusswort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
SQL ist der Schlüssel zu Business Intelligence. Gleich welche Auswertungen und Analysen erstellt werden, und mit welchen BI Reporting und Analysewerkzeugen man arbeitet: Dahinter stecken immer Datenbankabfragen mit SQL. Um Business Intelligence erfolgreich betreiben zu können, benötigt man fundierte SQLKenntnisse.Dieses Übungsbuch bietet ein umfassendes Training zur wissenschaftlichen und/oder fachpraktischen Ausbildung für BIAnalysten und Wirtschaftsinformatiker. Es dient gleichzeitig als Nachschlagewerk für die tägliche Arbeit.Das Besondere an diesem Werk ist die Lieferung von insgesamt knapp 2,2 Millionen Datensätzen in sieben Dateien zum Aufbau einer Testdatenbank. Diese Testdatenbank kann auf jeder SQLDatenbank eingerichtet werden. Ich habe mich für den Microsoft SQL Server 2012 entschieden. Der MS SQL Server steht jedem Interessenten kostenlos zum Download zur Verfügung. Man kann diese Testdatenbank auch auf einer älteren SQLServerVersion oder auf einer Oracle oder HyperSQLDatenbank einrichten.Ziel des Buches ist nicht, den Umgang mit dem MS SQL Server 2012 ausführlich zu erklären. Es geht vielmehr um das Erlernen komplexer Datenbankabfragen mit TSQL. Der Einstieg in die Thematik geschieht Schritt für Schritt, sodass auch SQLAnfänger den Beschreibungen folgen können.Sie können mit dieser Testdatenbank auch in Oracle SQL oder HyperSQL arbeiten. Viele SQLBefehle sind identisch, egal welche Version Sie nutzen. Es gibt aber auch Befehle, die sich unterscheiden. In diesen Fällen müssen Sie sich im Netz die richtige Syntax für Oracle oder HyperSQL suchen. Das betrifft in erster Linie die Arbeit mit Datumsformaten und Zeitstempeln sowie die Darstellung von Ergebnissen in Dezimalwerten.
Das erwartet Sie in diesem BuchAnhand praxisnaher Beispiele erlernen Sie die Erstellung von Reports und Analysen. Sie erstellen umfassende KPI (Key Performance Indicator)Reports auf Jahres, Monats und Wochenbasis, lernen die wichtigsten Retourendaten kennen und ermitteln diverse Retourenquoten.Im nächsten Schritt erfahren Sie, wie Sie alle vorhandenen Kundendaten analysieren und zwischen Neukunden und Bestandskunden trennen können. Sie erstellen einen Kundenmonitor und lernen die wichtigen Werte im analytischen CRM kennen. Pro Kunde werden die Lebensdauer, die Aktivität und der individuelle Kundenwert ermittelt.
Vorwort
XII Vorwort
Darüber hinaus erstellen Sie umfangreiche Retourenanalysen und reports, sowohl auf Kundenbasis als auch auf Artikel und Stylebasis. Auch mit Warenkorbanalysen werden wir uns näher beschäftigen. Ich werde Ihnen zeigen, was mit TSQL möglich ist und wie Sie die Daten für weitere multivariate Analyseverfahren vorbereiten können.Außerdem lernen Sie verschiedene Zahlungsinformationen, wie offene Posten, Mahnstufen oder geschlossene Konten, kennen.Abschließend erstellen Sie eine komprimierte Selektionstabelle für das Kampagnenmanagement bzw. für den Newsletterversand.
Nach einer Einführung in die Grundlagen finden Sie ab Kapitel 10, „KPI-Report auf Basis uniquer Kunden“, weiterführende Trainingsaufgaben, in denen Sie das Gelernte selbstständig anwenden können. Zum besseren Auffinden der Trainingsaufgaben stehen diese im hier verwendeten Hinweiskasten.
Die Datensätze sind so umfangreich, dass dieses Buch nicht alle Analysemöglichkeiten erschöpfend darstellen kann. Es bleibt also noch reichlich Raum für eigene Entdeckungen und Aufgabenstellungen.
Auf Ihrem E-Book-Konto finden Sie sieben Textdateien mit insgesamt 2,2 Millionen Datensätzen. Sie umfassen Stamm- und Bestell daten, Artikel- und Zahlungsinformationen sowie Retourendaten.
1 Die Testdatenbank iw_shop
Für die Arbeit mit diesem Buch stelle ich Ihnen eine komplette, sehr umfangreiche und praxisorientierte Datenbank zur Verfügung. Diese Datenbank entspricht inhaltlich dem Datawarehouse eines OnlineShops. Sie erhalten sieben Dateien mit insgesamt knapp 2,2 Millionen Datensätzen. Damit kann die Datenbank iw_shop mit folgendem Inhalt erstellt werden: � Tabelle iw_customer enthält alle Stammdaten der Kunden mit 247 065 Datensätzen. � Tabelle iw_sales enthält alle Bestelldaten mit 818 525 Datensätzen. � Tabelle iw_article enthält alle Artikelinformationen mit 59 414 Datensätzen. � Tabelle iw_payment enthält alle Zahlungsinformationen mit 562 635 Datensätzen. � Tabelle iw_return_header enthält alle Kopfdaten der Retouren mit 149 399 Datensätzen. � Tabelle iw_ return_line enthält alle Retourendaten auf Artikelbasis mit 342 337 Datensätzen.
� Tabelle iw_code_reason enthält 45 Datensätze mit den Übersetzungen diverser Codes.Schauen wir uns nun die Inhalte der einzelnen Tabellen genauer an.
■■ 1 .1■Die Stammdatentabelle iw_customer
In der folgenden Tabelle finden Sie die Stammdaten der Kunden. Die Einträge der Namen und Straßen sind anonymisiert. Alle Daten sind bearbeitet – es handelt sich also nicht um echte Kundendaten. Die Tabelle verfügt über 14 Spalten. Zu den Datentypen kommen wir später, wenn wir diese Tabellen in die Datenbank laden. Momentan ist nur wichtig, dass Sie sehen, welche Inhalte in den einzelnen Spalten stehen.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungcustomerNo varchar Kundennummersalutation varchar Anredefirstname varchar Vorname (anonymisiert)surname varchar Nachname (anonymisiert)
2 1 Die Testdatenbank iw_shop
Spaltenname Datentyp Inhaltpostcode varchar Postleitzahlcity varchar Wohnortstreet varchar Straße (anonymisiert)eMail varchar E-Mail (anonymisiert)newsletter varchar Newsletter (1 = Ja, 0 = Nein)birthdate datetime GeburtsdatumriskID varchar ID der Bonitätsprüfungcredit numeric Höhe des zulässigen KreditscreditLimit varchar 1 = hat Kredit, 2 = kein Kredit
Von jeder Tabelle ist jeweils auch ein kleiner Auszug dargestellt, damit man sieht, wie die Tabelle gestaltet ist. Der Auszug der Tabelle iw_customer ist in Bild 1.1 zu sehen.
Bild 1 .1■Auszug aus der Tabelle iw_customer
■■ 1 .2■Die Bestelldatentabelle iw_sales
In der folgenden Tabelle befinden sich alle Bestelldaten. Sie besteht aus 14 Spalten.
Spaltenname Datentyp Inhaltowner varchar Shop-/Mandatenkennungline_No numeric Zeilennummer der RechnungorderNo varchar BestellnummercustomerNo varchar Kundennummertype numeric 2 = Artikel, 1 = VersandIWAN varchar Eindeutige Artikelnummer wie EANquantity numeric Anzahl der Artikelamount money Nettopreis des Artikelsvat_amount money Preis inkl. MwSt.line_amount money Summe der Zeile inkl. MwSt.VATpercent varchar Mehrwertsteuersatzbill_customerNo varchar Kundennummer des RechnungsempfängersorderDate datetime BestelldatumpostingDate datetime Verarbeitungsdatum
1.3 Die Artikeltabelle iw_article 3
In Bild 1.2 können Sie einen Blick in den Datenauszug werfen.
Bild 1 .2■Auszug aus der Tabelle iw_sales
■■ 1 .3■Die Artikeltabelle iw_article
In der folgenden Tabelle stehen alle Artikelinformationen. Sie verfügt über 13 Spalten.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungIWAN varchar Eindeutige Artikelnummer wie EANarticle_No varchar Artikelnummerdescription varchar ArtikelbeschreibungunitPrice money Stückpreisdeftime datetime Zeitstempel Artikel gelistetmodtime datetime Zeitstempel Artikel zuletzt bearbeitetseasonCode varchar Saison-CodeproductGroup varchar Produktgruppen-CodecolorCode varchar Farb-CodecolorDescription varchar Farbbeschreibungsize varchar GrößearticleOnline varchar 1 = online, 0 = offline
In Bild 1.3 sehen Sie den Inhalt der Tabelle.
Bild 1 .3■Auszug aus der Tabelle iw_article
4 1 Die Testdatenbank iw_shop
■■ 1 .4■ Die Zahlungsinformationstabelle iw_payment
Die folgende Tabelle zeigt Zahlungsinformationen, wie offene Posten, geschlossene Konten oder Mahnstufen. Sie verfügt über 9 Spalten.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungorderNo varchar BestellnummercustomerNo varchar KundennummeroutstandingAmount money Offener BetragpostingDate datetime Bearbeitungs-, LieferdatumdueDate datetime ZahlungszielclosedAccountDate datetime Konto geschlossenopenAccount varchar 0 = geschlossen, 1 = offendunningLevel varchar Mahnstufen 1 bis 4 (0 = keine Mahnstufe)
Bild 1.4 zeigt einen Auszug der Tabelle.
Bild 1 .4■Auszug aus der Tabelle iw_payment
■■ 1 .5■ Die Retouren-Kopftabelle iw_return_header
Die folgende Tabelle benötigen wir, um eine Beziehung zwischen den Retouren und der ursprünglichen Bestellung herzustellen. Sie besteht aus 10 Spalten.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungreturnNo varchar RetourennummerorderNo varchar BestellnummerpaymentCode varchar Zahlungsart
1.6 Die Retourentabelle iw_return_line 5
Spaltenname Datentyp InhaltreturnType varchar RetourentypshippingAgent varchar VersendercustomerNo varchar Kundennummerbill_customerNo varchar Kundennummer des RechnungsempfängersshipmentDate datetime VersanddatumpostingDate datetime Bearbeitungsdatum
In Bild 1.5 können Sie einen Blick auf den Inhalt der Tabelle werfen.
Bild 1 .5■Auszug aus der Tabelle iw_return_header
■■ 1 .6■Die Retourentabelle iw_return_line
Die eigentlichen Informationen zu den Retouren auf Artikelbasis stehen in der folgenden Tabelle, die über 14 Spalten verfügt.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungreturnNo varchar RetourennummercustomerNo varchar Kundennummerbill_customerNo varchar Kundennummer des Rechnungsempfängersquantity numeric ArtikelanzahlunitPrice money StückpreisIWAN varchar Eindeutige Artikelnummer wie EANtype numeric 2 = Artikel, 1 = VersandreturnReason varchar RetourengrundproductGroup varchar Produktgruppevat_line_amount money Summe der Zeile inkl. MwSt.line_amount money Summe der Zeile ohne MwSt.shipmentDate datetime VersanddatumpostingDate datetime Bearbeitungsdatum
6 1 Die Testdatenbank iw_shop
In Bild 1.6 sehen Sie die Retourentabelle.
Bild 1 .6■Auszug aus der Tabelle iw_return_line
■■ 1 .7 Die Code-Tabelle iw_code_reason
Im Folgenden sehen Sie eine relativ kleine Tabelle, mit der wir einige Codes aus den vorhergehenden Tabellen in Klartext umwandeln können.
Spaltenname Datentyp Inhaltowner varchar Shop-/MandatenkennungType varchar returnReason/returnType/paymentCode varchar CodeReason varchar Klartext
Bild 1.7 zeigt den Inhalt der CodeTabelle.
Bild 1 .7■Auszug aus der Tabelle iw_code_reason
Damit ist der Überblick über die Tabellen, die ich Ihnen zur Verfügung stellen werde, abgeschlossen.
Die einfachste Möglichkeit, eine voll funktionsfähige SQLDatenbank aufzubauen, bietet der Microsoft SQL Server. Aktuell stehen zwei Versionen zur Verfügung: � Microsoft SQL Server 2008 R2 � Microsoft SQL Server 2012
Beide Versionen können kostenlos heruntergeladen werden, z. B. unter folgender Webadresse: http://www.microsoft.com/germany/sql/2008/default.mspxDie neue ServerVersion 2012 steht als TrialVersion zur Verfügung und kann 180 Tage lang kostenlos genutzt werden. Der SQL Server 2008 R2 kann dauerhaft kostenlos genutzt werden.In diesem Buch nutzen wir die neueste Version 2012, die unter folgendem Link als Download zur Verfügung steht: http://www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspxSolche Links können sich natürlich ändern. Sie werden aber über eine entsprechende Suche immer den jeweils aktuellen Link zum Download finden.
■■ 2 .1■ Systemvoraussetzungen für den Microsoft SQL Server
Die Hardware und Softwareanforderungen für die Installation von SQL Server 2012 finden Sie unter http://msdn.microsoft.com/de-de/library/ms143506.aspx. Steht Ihnen ein relativ aktuell ausgestatteter Rechner ab Betriebssystem Windows 7 und mindestens 6 GB freier Speicherplatz auf dem Systemlaufwerk zur Verfügung, dann sollten Sie die neueste Version 2012 nutzen.Ansonsten sollten Sie auf die Version 2008 R2 ausweichen. Damit können Sie genauso gut arbeiten. Die Systemvoraussetzungen für diese Version finden Sie unter folgendem Link: http://msdn.microsoft.com/de-de/library/ms143506(v=sql.105).aspx
2 Installation einer funktionsfähigen SQL-Datenbank
8 2 Installation einer funktionsfähigen SQL-Datenbank
■■ 2 .2■ Produktinformationen zum SQL Server 2012 und SQL Server 2008 R2
Alle Produktinformationen zum SQL Server 2012 finden Sie in der Library von Microsoft (Bild 2.1) unter http://msdn.microsoft.com/de-de/library.
Bild 2 .1■MSDN Library
Klicken Sie links auf SQL Server und dann weiter auf SQL Server 2012 (Bild 2.2).
Bild 2 .2■Online-Dokumentation zum SQL Server 2012
Dort finden Sie eine komplette OnlineDokumentation, Installationshinweise, Lernprogramme und vieles mehr. Auch für die Version 2008 R2 finden Sie in der MSDN Library alle erforderlichen Informationen.
2.3 Download und Installation 9
■■ 2 .3■Download und Installation
Laden Sie sich eine der beiden ServerVersionen herunter und folgen Sie den Installationsanweisungen. Im Folgenden finden Sie eine Kurzanweisung für den SQL Server 2012.Unter http://www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspx können Sie sich die Datei herunterladen.
Bild 2 .3■Download des SQL Servers 2012
Klicken Sie auf Download SQL Server 2012 (Bild 2.3).
Bild 2 .4■ Auswahl zwischen der 32- oder 64-Bit-Version
10 2 Installation einer funktionsfähigen SQL-Datenbank
Es stehen zwei Versionen zur Verfügung, die 32Bit und die 64BitVersion (Bild 2.4). Wenn Sie nicht sicher sind, welche Version für Sie die bessere ist, können Sie auch beide Versionen zusammen als DVD ISO Image herunterladen. Dazu müssen Sie nicht unbedingt eine DVD erstellen. Sie können diese Daten auch lokal auf dem Rechner speichern. Unabhängig davon, welche Version Sie herunterladen, sollten Sie auf jeden Fall vorher die Sprache Deutschland (Deutsch) auswählen.Starten Sie nun den Download. Sie erhalten die in Bild 2.5 zu sehende Meldung.
Bild 2 .5■Download-Meldung
Der DownloadProzess kann einige Zeit in Anspruch nehmen, vor allem dann, wenn Sie sich für DVD ISO Image entschieden haben. Haben Sie etwas Geduld.Nachdem der Download abgeschlossen ist, müssen Sie den SQL Server installieren. Schauen Sie dazu in den Ordner, in dem die Programmdaten abgelegt wurden. In der Regel ist das der Ordner Downloads. Suchen Sie dort im Stammordner die Datei setup.exe und starten Sie die Installation mit einem Doppelklick.Das SQL ServerInstallationscenter wird vom InstallationsAssistenten ausgeführt. Um eine neue Installation vom SQL Server zu erstellen, klicken Sie im linken Navigationsbereich auf Installation und anschließend auf Neue eigenständige SQL ServerInstallation oder Hinzufügen von Funktionen zu einer vorhandenen Installation. Folgen Sie den Installationsanweisungen. Ausführliche Installationsanweisungen finden Sie vorab auch in der Library unter http://msdn.microsoft.com/de-de/library/ms143219.Ist der SQL Server fertig installiert, können Sie mit der Erstellung der Testdatenbank beginnen.
3Starten Sie das Microsoft SQL Server Management Studio. Klicken Sie dazu auf die Verknüpfung, die auf Ihrem Desktop oder auf Ihrer Taskleiste zu finden ist (Bild 3.1). Wurde keine Verknüpfung erstellt, starten Sie das Management Studio direkt aus Ihrer Programmliste heraus.
Bild 3 .1■ Verknüpfungssymbol auf dem Desktop
Bild 3 .2■ Startfenster zum Management Studio
Das Management Studio wird geöffnet (Bild 3.2). Nun müssen Sie eine Verbindung zur Datenbank herstellen (Bild 3.3).Wählen Sie als ServerTyp Datenbankmodul aus. Der Servername ist Ihr Rechnername, der automatisch angezeigt wird. Falls der Servername nicht direkt angezeigt wird, klicken Sie rechts auf den kleinen Pfeil neben dem Feld und wählen Sie Suche fortsetzen. Sie können dann auf Ihrem Rechner die installierte Datenbank suchen und den passenden Servernamen bzw. Ihren Rechnernamen per Klick einfügen.Wählen Sie Windows-Authentifizierung. Der Benutzername ist ebenfalls automatisch hinterlegt.Bei der Installation einer älteren Version des Management Studios, bei der Nutzung eines Netzwerkes oder einer anderen von der vorhergehenden Beschreibung abweichenden Installation können Sie sich bei der Verbindung zur Datenbank an den Handbüchern oder Hilfen zur entsprechenden Version orientieren.
Erstellung einer Testdatenbank und Import der mitgelieferten Daten
12 3 Erstellung einer Testdatenbank und Import der mitgelieferten Daten
Bild 3 .3■Verbindung mit dem Server herstellen
Klicken Sie nun auf Verbinden.
■■ 3 .1■Eine neue Datenbank anlegen
Links im ObjektExplorer sehen Sie die Verbindung zu Ihrem Rechner. Klicken Sie auf das +Zeichen, damit die weiteren Inhalte angezeigt werden. Markieren Sie den Ordner Daten-banken und klicken Sie auf die rechte Maustaste. Wählen Sie den ersten Punkt Neue Datenbank aus (Bild 3.4).
Bild 3 .4■ Neue Datenbank anlegen
3.2 Tabellen importieren 13
Tragen Sie als Datenbanknamen iw_shop ein. Anschließend klicken Sie auf OK. Mehr müssen Sie nicht tun. Die Datenbank ist nun erstellt (Bild 3.5).
Bild 3 .5■Die Datenbank wurde erstellt.
■■ 3 .2■Tabellen importieren
Nun müssen Sie die sieben auf DVD mitgelieferten Dateien jeweils als Tabelle in die neu erstellte Datenbank importieren. Wir tun dies Schritt für Schritt am Beispiel der Tabelle iw_sales.Zuvor sollten Sie jedoch die mitgelieferten TXTDateien entweder direkt auf Ihren Rechner kopieren oder auf einem Datenträger, wie einem USBStick, bereithalten.Und so geht's: Markieren Sie die neu eingerichtete Datenbank. Mit der rechten Maustaste öffnen Sie das Dialogfeld der Datenbank, dort klicken Sie auf Tasks und im nächsten Dialogfeld auf Daten importieren (Bild 3.6 auf der folgenden Seite).
14 3 Erstellung einer Testdatenbank und Import der mitgelieferten Daten
Bild 3 .6■ Dialogfeld Daten importieren
Der SQL ServerImport/ExportAssistent wird geöffnet. Klicken Sie auf Weiter (Bild 3.7).
Bild 3 .7■ Import/Export-Assistent
Unsere Tabellen liegen als Textfile vor. Bei der Datenquelle wählen Sie den Eintrag Flatfile-quelle. Danach klicken Sie auf Durchsuchen und wählen die Datei iw_sales.txt aus (Bild 3.8).
3.2 Tabellen importieren 15
Bild 3 .8■ Datenquelle auswählen
In den meisten Textdateien, die wir hier importieren, sind die Dezimalstellen mit einem Punkt anstatt mit einem Komma getrennt. Das ist die englische bzw. amerikanische Schreibweise. Deshalb müssen Sie ein entsprechendes Gebietsschema auswählen. Wählen Sie Englisch (Großbritannien) aus (Bild 3.9).
Bild 3 .9■ Gebietsschema auswählen
16 3 Erstellung einer Testdatenbank und Import der mitgelieferten Daten
Anschließend müssen Sie die Eigenschaften jeder Spalte bestimmen. Als Standard ist für jede Spalte eine Zeichenfolge (varchar) von 50 Zeichen voreingestellt. Das können Sie bei vielen Spalten auch so belassen. Es gibt aber Spalten, die Sie unbedingt neu konfigurieren müssen. Klicken Sie dazu im Dialogfeld des Import/ExportAssistenten links auf Erweitert. Nun werden die einzelnen Spalten angezeigt. Wenn Sie eine Spalte markieren, sehen Sie ganz rechts die aktuelle Konfigurierung (Bild 3.10).
Bild 3 .10■ Eigenschaften der Spalten konfigurieren
Nun ändern Sie die Einstellungen in einigen Spalten. Klicken Sie dazu auf die Spalte line_No und wählen dann, rechts beim Eintrag DataType, einen neuen Datentypen aus. Wenn Sie auf DataType klicken, öffnet sich ein Auswahlfenster. Hier sind alle verfügbaren Datentypen aufgelistet. Wählen Sie Numerisch [DT_NUMERIC] (Bild 3.11).Mit dieser Einstellung kann man bis zu 18stellige Zahlen verarbeiten. So viele Stellen benötigen wir nicht. Sie können unter DataPrecision die Anzahl der Stellen bestimmen. Tragen Sie hier eine 5 ein (Bild 3.12).
3.2 Tabellen importieren 17
Bild 3 .11■ DataType Numerisch
Bild 3 .12■ DataPrecision
Die gleichen Einstellungen nehmen Sie bei den Spalten type und quantity vor (Bild 3.13 auf der nächsten Seite).
Recommended