Unterabfrage oder JOIN? - zwei Tabellen

samke

Mitglied
Hallo,

und zwar geht es bei meinem Fall um eine MSSQL 2000 Abfrage.

Ich habe eine Datenbank mit zwei Tabellen -> Adressen und Aktionen

Tabelle 1 -> Nur die Adresse
Tabelle 2 -> die Aktionen, mit Herkunft (für die Verknüpfung zur Adresse), Name und Erfassungsdatum.

Ich will alle Adessen aus Tabelle 1 mit der letzten Aktion (Name, Datum) die zu der Adresse passt. Wenn es zu einer Adresse keine Aktion gibt, soll die Adresse nicht ausgeben werden.

Bspl.
Adresse 1 - Aktion XY - 05.05.2008 --> ausgeben
Adresse 2 - 0 Aktionen in der Datenbank --> nicht ausgeben, da keine Aktionen
Adresse 3 - Aktion Bla - 12.12.2007 --> nicht ausgeben, da Aktion zu alt

Einer Adresse können mehrere Aktionen zugeordnert sein, aber wie gesagt, es soll zu der Adresse nur die neuste angezeigt werden.

Wie kann man das umsetzen? Habe da schon einiges Probiert, bin aber zu keinen 100% Erfolg gekommen, ich habe immer wieder Datensetze enthalten, die nicht stimmen, also wo die Aktion nicht zur Adresse passt usw.

Hier mein akt. Abfrage Code:
Code:
SELECT     Tabelle1.Adresse, Tabelle2.Erfassungsdatum
FROM       Tabelle1 
CROSS JOIN Tabelle2
WHERE      (Tabelle2.Erfassungsdatum =
             (SELECT     TOP 1 (Erfassungsdatum)
              FROM          Tabelle2
              WHERE      Tabelle1.Adresse = Tabelle2.Herkunft))
ORDER BY   Tabelle1.Adresse


Danke für eure Hilfe!
Gruß
 
Zurück