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
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.
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
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";
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169029
Url: https://administrator.de/contentid/169029
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar