Auswertung - Wohnort
Jetzt ist es endlich an der Zeit, zu unserer ursprünglichen Aufgabe als "Daten-Detektive" zu kommen. Zur Erinnerung, die zentrale Frage:
Wie kann man sicherstellen, dass die Daten zu den Personen in einem Haushalt stimmen?
Aufgabe
Die Daten über die Einkäufe können für die Fragestellung ein wichtiger Ansatzpunkt sein. Dazu siehst du hier noch einmal das Schema unserer "zusammengebauten" Datenbank. Gut erkennbar nochmals die neue "Verbindung" zwischen den beiden Teilen der Datenbank:
- Welche Tabellen und welche Attribute könntest du nutzen, um herauszufinden, ob eine Person wirklich im angegebenen Haushalt wohnt?
- Baue die "Joinkette", also die Bedingungen, die du benötigst, um die beteiligten Tabellen miteinander zu verbinden!
Eine erste Auswertung
Vielleicht hast du deinen Join auch direkt ausprobiert, wenn nicht, dann kannst du das ja noch tun. Dabei könnte das Ergebnis so aussehen:
Wenn du nicht weitergekommen bist oder dein Ergebnis gar nicht "passt", hier eine Hilfe.
SELECT DISTINCT p.PNR, p.Name, p.Vorname, k.Ort AS Kaufort, h.Ort AS Wohnort
FROM z_kauf k, znrpnr z, m_person p, m_haushalt h
WHERE [...]
AND k.Ort <> h.Ort
Mache dir auch noch einmal klar, warum das DISTINCT
benötigt wird.
Die Aliasnamen k,z,p und h wurden nur eingeführt, damit man bei den Attributen und Joins nicht so viel tippen muss.
Den Operator <>
kennst du vielleicht noch nicht - er bedeutet "ungleich".
Welche Idee steckt dahinter, Kaufort und Wohnort zu vergleichen?
Verbessern der Auswertung
Anhand der Ergebnisse kommt man schnell zum Schluss, dass vier Personen wohl nicht dort wohnen, wo sie angegeben haben - mache dir klar, warum es nur vier Personen bei fünf Ergebniszeilen oben sind!
Aber der Schluss wäre vorschnell. Ändere deinen SQL-Befehl so ab, dass dein Ergebnis wie folgt aussieht:
Welche Schlüsse kannst du jetzt ziehen?
Zum Untermauern deiner Aussage kann es auch helfen, die Gesamtzahl aller Käufe der betroffenen Personen
einmal in Relation zu setzen!