Grundlage ist eine ganz einfache Datenbank: eine Tabelle mit Kundenstammdaten, die mit einer weiteren Tabelle mit Bestellungen; verknüpft 1:n.
Ich möchte nun alle Kunden selektieren, die 2011 oder früher bestellt haben, aber 2012 und '13 nicht mehr. Wie ist eine solche Selektion möglich?
Wenn ich auf ein Bestelldatum vor dem 31.12.2011 filtiere, kann ich mir ja nicht automatisch sicher sein, dass diese Kunden nicht auch Bestellungen in den beiden Jahren danach getätigt haben. Also muss ein weiteres Ausschlusskriterium hinzu. Wie und welches?
Hallo,
ganz einfache Datenbank aber eine nicht ganz so einfache Lösung.
Um jetzt hier keinen Roman zu verfassen habe ich ein kleines Beispiel erstellt, aus dem du ersehen kannst, wie die Zusammenhänge funktionieren.
HTH
[Anhang gelöscht durch Administrator]
Der folgende Ansatz beinhaltet auch die Nutzung eines möglicherweise vorhandenen Index auf Bestelldatum:
PARAMETERS
[:paramJahr] Long
;
SELECT
K.*,
Q.MaxDatum
FROM
tblKunden AS K
INNER JOIN
(
SELECT
B.KundenID_F,
Max(B.Bestelldatum) AS MaxDatum
FROM
tblBestellungen AS B
GROUP BY
B.KundenID_F
HAVING
Max(B.Bestelldatum) < DateSerial([:paramJahr] + 1, 1, 1)
) AS Q
ON K.KundenID = Q.KundenID_F
;
MfGA
ebs