chrisfah
Goto Top

Mysql Select MAX mit Datum

Hallo, wieder einmal benötige ich Eure Hilfe bei der formulierung einer MySQL Abfrage .

Hallo, wieder einmal benötige ich Eure Hilfe bei der formulierung einer MySQL Abfrage .

Ich habe eine tabelle, in der Kontakte zu Kunden verwaltet werden.
Tabelle kontakte:
k_id, user_id, interessenten_id, objekt_id, datum

Es sollen nun in regelmässigem Abstand alle jene user gesucht werden, die seit einer gewissen Zeit keinen Kontakt mehr zu einem Interessenten für ein bestimmtes Objekt hatten.
Soweit so einfach. ABER: Die Kombination user_id, interessenten_id objekt_id kann mehrfach vorkommen, denn die User können zuvor auch schon mehrfach Kontakt zu einem Interessenten gehabt haben.
Daher suche ich NUR jene Kontakte, deren Datum älter als 7 Tage ist.

Ich hab das so gelöst, hier nocjh ohne Datumsvergleich
$due_q_r = "SELECT DISTINCT MAX(k_id) , user_id, interessenten_id, objekt_id, MAX(k_erstellt)   
			FROM ".TABLE_KONTAKTE."    
			GROUP BY interessenten_id, user_id, objekt_id";	  
Das Ergebnis, bis uaf das Datum stimmt so.

Sobald ich jedoch das Datum einbaue, werden bei Mehrfachkontakten nicht die letzten Kontakte angezeigt, sondern jene jetzten, die länger als 7 Tage zurück liegen.
$due_q_r = "SELECT DISTINCT MAX(k_id) , user_id, interessenten_id, objekt_id, MAX(k_erstellt)   
			FROM ".TABLE_KONTAKTE."  
			WHERE DATEDIFF(NOW(), k_erstellt) > 7 
			GROUP BY interessenten_id, user_id, objekt_id";  

Auch ein ORDER BY nützt nichts, da wird nur das Ergebnis sortiert.

Wie muss ich das richtig formulieren, daß nur jene Kontakte angezeigt werden, die älter als 7 Tage sind, UND KEINE neueren Kontaktdaten haben ???

Danke für eure Hilfe im voraus,
Lg, Chris

Content-ID: 169029

Url: https://administrator.de/contentid/169029

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

nxclass
nxclass 03.07.2011 um 22:23:25 Uhr
Goto Top
$due_q_r = "SELECT DISTINCT MAX(k_id) , user_id, interessenten_id, objekt_id, MAX(k_erstellt) AS 'max_k_erstellt'  
			FROM ".TABLE_KONTAKTE."  
			GROUP BY interessenten_id, user_id, objekt_id
			HAVING DATEDIFF(NOW(), max_k_erstellt) > 7";  
ChrisFah
ChrisFah 04.07.2011 um 13:41:01 Uhr
Goto Top
Perfekt, so hat es geklappt. Danke !!!

Lg, Chris