Tach!
Über das Einbinden von MAX(m.Mahnstatus) in die WHERE-Klausel erhalte ich einen Fehler #1111 - Invalid use of group function.
Das Maximum wovon? Ein Where schaut sich für den aktuellen Datensatz an, ob die Bedingungen passen. Wenn du dabei einen Maximalwert auswerten möchtest, musst du dazu eine komplette Subquery verfassen, die die zu beachtenden Datensätze berücksichtigt. Das ist auch dann notwendig, wenn das der Maximalwert aus Datensätzen der gerade abgefragten Tabelle ist. MySQL ist dabei nicht so frei und bildet selbst eine neue Datensatzmenge, um von ihr den gewünschten Wert zu ermitteln.
lediglich den höchsten Mahnstatus UND das hierzu gehörende Mahndatum+Fälligkeit zu erhalten.
Das geht sowie nicht besondern hübsch mit MAX(). MAX() ist eine GROUP-BY-Funktion. Ohne GROUP BY bezieht es sich auf alle Datensätze der Tabellen.
Eine Abfrage SELECT *, MAX() FROM ... bringt dir nicht das gewünschte Ergebnis, weil die anderen Felder aus irgendeinem Datensatz genommen werden. (Andere DBMSe betrachten eine solche Abfrage als Fehler.) Du brauchst also eine Lösung ohne Gruppierfunktioin. Wie wär es mit absteigend sortieren und nur einen Datensatz nehmen? Das kannst du als Subquery in die FROM-Klausel schreiben.
dedlfix.