Moin,
würde das Problem lösen, aber dann wird mir anscheinend nur die Rechnung mit der höchsten m.ID angezeigt.
Ich dachte, es würden so alle Rechnungsnummern je 1 mal angezeigt und falls 2 (oder mehr) Mahnstati vorhanden wären, würde der mit der höchsten ID genommen?
Ich bin kein SQL-Experte, aber die Methode mit dem HAVING ist meines Erachtens hier nicht zielführend. Ich würde das vielleicht folgendermaßen machen, mit der Gewissheit, dass es irgendwie noch besser geht:
SELECT DISTINCT
r.Rechnungsnummer,
ADDDATE(r.R_Datum , INTERVAL r.Faelligkeit DAY),
m.Mahnstatus,
ADDDATE(m.M_Datum, INTERVAL m.Faelligkeit DAY)
FROM rechnungen r
LEFT JOIN mahnungen m
ON r.RechnungenID = m.RechnungenID
AND m.Id = (SELECT MAX(tmp.Id) from mahnungen tmp WHERE tmp.RechnungenID = r.RechnungenID)
WHERE
r.B_art="RG"
Damit joinst du immer nur den Datensatz mit der größten ID aus Mahnungen, welche mit der Rechnungs-ID übereinstimmt, an das Ergebnis.
Wie gesagt: Das ist eine Lösung, die wahrscheinlich unperformant und verbesserungswürdig ist. Vielleicht meldet sich noch ein SQL-Experte. Oder zumindest ein Amateur. Oder wenigstens ein Semi-Amateur ;)
Grüße Marco
Ich spreche Spaghetticode - fließend.