Hallo fanelf,
SELECT t1.Name, MAX(t2.Von), t2.Bis, t2.Tage
FROM tabelle1 t1 JOIN tabelle2 t2 USING(Kennziffer)
GROUP BY t1.Name, t2.Bis, t2.Tage
ORDER BY t1.Name ASC
nein, Iljas Lösung ist richtig :-)
Deine Lösung würde wieder zu mehreren Einträgen je Name führen, was laut Ausgangsposting nicht gewünscht ist.
Die Aufgabenstellung lautet:
Gib mir aus Tabelle 1 den "Namen",
aus Tabelle 2 die Spalten "Von", "Bis" und "Tage",
aber zu jeder "Kennziffer" nur die Zeile mit dem höchsten Wert in der Spalte "Tage". Genau dies liefert der Vorschlag von Ilja, wobei Ilja korrekt hinzugefügt hat, dass es im Falle von doppelten Max-Werten auch wiederum zu doppelten Einträgen kommen kann.
SELECT
t1.name,
t2.von,
t2.bis,
t2.tage
FROM tabelle1 AS t1
INNER JOIN tabelle2 AS t2
ON t1.kennziffer = t2.kennziffer
WHERE t2.von = (
SELECT MAX(t3.von) FROM tabelle2 AS t3 -- kann bei Gleichheit zu
WHERE t2.kennziffer = t3.kennziffer -- Mehrfacheinträgen führen
)
Das einzige Problem stellt die Anpassung dieses Statements an die tatsächlich vorhandenen Tabellennamen und ggf. Spaltennamen dar.
Freundliche Grüße
Vinzenz