Guten Tag,
ich laufe gegen die Wand!
Ich habe eine Abfrage mit folgenden Feldern;
ID, Nachname, Datum, Nachricht
... und diese Abfrage ist nach Nachname gruppiert.
Das Problem;
Ich möchte eine weitere Abfrage erstellen, welche die oben genannten Felder ebenfalls ausgibt, allerdings mit nur den letzten 3 Nachrichten.
Ich bekomme das echt nicht allein auf die Reihe,- kann mir jemand bitte den sql-code dafür schreiben?
Wenn ID für eindeutig steht:
SELECT
T.*
FROM
YourTable AS T
WHERE
T.ID IN
(
SELECT TOP 3
X.ID
FROM
YourTable AS X
WHERE
X.Nachname = T.Nachname
ORDER BY
X.Datum DESC,
X.ID DESC
)
TREFFER ! Danke ebs17
Ich bin zuvor auf die Lösung gestoßen:
SELECT A.ID, A.Nachname, A.Nachricht, A.Datum, (SELECT
Count(*)
FROM
meineTabelle As B
WHERE
B.Nachname = A.Nachname
AND
B.Datum<=A.Datum
) AS LaufendNr, A.Nachname, Nachricht
FROM meineTabell AS A
WHERE ((((SELECT
Count(*)
FROM
meineTabellet As B
WHERE
B.Nachname = A.Nachname
AND
B.Datum<=A.Datum
))<4))
ORDER BY A.Nachname, A.Datum DESC;
welche meine einzelnen Gruppen (Nachname) nummeriert und über die laufende Nummer Datensätze sondiert. Alles ein wenig umständlich und nicht so elegant wir deine Lösung,- die ich übernommen habe.
Eberhard, danke nochmals für die Mühe!
PS: Verifizierungsfrage ungelöst; Wo lebt angeblich der Weihnachtsmann :-)