SQL Selektion letztes Datum des Kontaktes

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich habe ein Problem und zwar habe ich eine Tabelle die Kontakte heißt.
In dieser Tabelle werden alle Kontakte mit den jeweiligen Kunden hinterlegt mit Datum.
Nun möchte ich wissen welche Kunden das letzte Mal vor 2 Jahren mit mir Kontakt hatten.
Wie mach ich das ?
Irgendwie habe ich ein Brett vor dem Kopf und bitte um Anregungen.

Grüße DJ
 
Ohh ja richtig MSSQL
 
Das Datum liegt wahrscheinlich in einer Spalte. In welchem Format liegt es vor? Oder ist es in einzelne Spalten gesplittet?
 
Hi,

das hier als Grundlage nehmend (Daten löschen, die älter als 2 Jahre sind):

For example, if you have a DateTime column called CreateDate, you could do this:

DELETE FROM Table WHERE DATEADD(year, 2, CreateDate) < getdate()

Sollte

Code:
SELECT * FROM Kontakte WHERE DATEADD(year, 2, Kontakte.Datum) > getdate()

funktionieren.

VG,
Mad
 
select * from kontakte where datum = DATEADD(GETDATE(), -2, 0, 0)

so sollte es gehen (frei aus dem kopf)

Gruß

Capfu
 
SELECT *,DATEDIFF(day,Datum,GETDATE()) AS Differenz FROM kontakte WHERE DATEDIFF(day,Datum,GETDATE()) >= 2*365

Als alternativen ansatz.
 
Zuletzt bearbeitet:
Das Format ist dd,mm,yyyy

Danke für die Anregungen ich probiere es mal aus.
 
schritt 1
letzten kontakt je kunde ermitteln: select kunde, max(datum) from ... group by kunde
schritt 2
bedingung mehr als 2 jahre: bedingung für group by mittels having oder ne abfrage drum herum stricken, welche die 2 jahre checkt. das passiert grundsätzlich mit datediff(dd, max(datum), getdate())
beim datediff ist zu beachten, dass nicht wie oben angegeben auf jahresbasis geprüft wird, sondern auf tagesbasis mit 2 * 365d, da datediff(y, 31.12.2011, 01.01.2011) = 1 ist, was man wohl kaum als jahr bezeichnen wird...
 
Also ich würde mich ja an den Lösungsweg von tm0975 halt.
Denn wenn die Tabelle einen Eintrag zu einem Kontakt mit einem Kunden aus dem Jahr 1999 enthält und einen Eintrag zu einem Kontakt zum selben Kunden von gestern, so sind die anderen Lösungen falsch.:streicheln:
 
Ja habe es auch genau nach tm0975 gemacht.
Da der Rest der Lösungen nicht zu gebrauchen war.

Daher danke @tm0975 hat mich wunderbar weiter gebracht.
 
Zurück
Oben