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-Key: 169029

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

Printed on: April 18, 2024 at 20:04 o'clock

Member: nxclass
nxclass Jul 03, 2011 at 20:23:25 (UTC)
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";  
Member: ChrisFah
ChrisFah Jul 04, 2011 at 11:41:01 (UTC)
Goto Top
Perfekt, so hat es geklappt. Danke !!!

Lg, Chris