Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Selektion auf Altkunden

Begonnen von Miesler, April 08, 2013, 09:47:04

⏪ vorheriges - nächstes ⏩

Miesler

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?

database

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]

ebs17

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
Mit freundlichem Glück Auf!

Eberhard