[MS-SQL] Erstellung einer Sicht

vschris

Grünschnabel
Kann mir jemand helfen den SQL-Code zu erstellen?
Vorgabe (vereinfacht):
In der Tabelle „Kundenbetreuung“ werden alle Kundenbesuche in zwei Spalten protokoliert:
Kundennummer und Besuchsdatum.
Ich brauche eine Sicht, die nur den letzten Besuch bei jedem Kunden anzeigt.
 
SQL:
SELECT `letzerBesuch` FORM `kunden` WHERE `kundenid` = _DeineId_ ORDER BY `letzerBesuch` DESC LIMIT 0,1

EDIT: Ups, das war wohl MySQL -.-
 
Zuletzt bearbeitet:
Hallo vschris,

erstmal brauchst du einen SQL, der dir das gewünschte Ergebniss liefert:
Code:
SELECT  Kundennummer, MAX(Besuchsdatum) AS MaxBesuchsdatum
FROM Kundenbetreuung
GROUP BY Kundennummer
Dann wechselst du zu den Sichten und erstellst eine neue Sicht und fügst den SQL ein.
Speichern, Name vergeben, fertig.
 
die Lösung von queicherius mit "DESC LIMIT 0,1" funktioniert leider nicht. Das Schlüsselwort "LIMIT" konnte ich ach in Hilfe (SQL Server 2005) nicht finden.
Aber Bernd sei Dank. Deine Lösung ist genau das richtige.
Gruß Christoph
 
Es ist mir peinlich, aber ich muss euch nochmal um Hilfe bitten.
Wenn ich weitere Spalten aus der Tabelle Kundenbetreuung in der Sicht haben möchte (z.B. Auftragsnummer oder Reisekosten), dann funktioniert das gruppieren nicht mehr.
Seit 3 Tagen bin ich mit dem Thema beschäftigt und komme nicht weiter und deshalb bitte nochmal um eure Unterstützung.
LG Christoph
 
Wenn du weitere Spalten drin haben willst musst du nochmal auf die Tabelle joinen

Code:
Select a.Kundennummer, a.MaxBesuchsdatum /*hier jetzt kommagetrennt weitere Spalten*/
FROM (
            SELECT  Kundennummer, MAX(Besuchsdatum) AS MaxBesuchsdatum
            FROM Kundenbetreuung 
            GROUP BY Kundennummer) as a
Inner Join Kundenbetreuung as b on a.Kundennummer = b.Kundennummer and a.Maxbesuchsdatum = b.Besuchsdatum

Denk dran die weiteren Spalten bräuchten den Präfix b!

LG Alex
 
Zurück