Hallo, komme nicht weiter. Folgendes Problem: tabelle_1 [id, req_id, date, spalte_1, spalte_2, spalte_3] Ich hätte gern alle Datensätze (zumindest die id) einer Gruppierung nach req_id, von dierser das letzte Datum (max date). SELECT id, req_id, max (date) FROM tabelle_1 GROUP BY req_id Fehler hier: die id fehlt in der GROUP BY Clause Würde man die id mit reinehmen, erhält man jedoch wieder mehrere Datensätze zu einer req_id. Wäre froh, wenn mir Jemand einen Tip geben könnte. Danke.
Mit einer subquery lässt sich das so machen: SELECT id FROM tabelle_1 as t1 WHERE date = (SELECT MAX(date) FROM tabelle_1 as t2 WHERE t1.req_id = t2.req_id);
entwender die Lösung von jan als korellierte Subquery... ...oder du musst die tabelle_1 halt 2 mal in der Fromklausel einbinden FROM tabelle_1 t1, tabelle_1 t2 dann in WHERE-Klausel beide auf gleiche req_id matchen WHERE t1.req_id = t2.req_id usw.
Wenn Du ein GROUP BY verwendest, musst Du alle Spalten, die angezeigt werden sollen auch im GROUP BY angeben: SELECT id, req_id, max (date) FROM tabelle_1 GROUP BY req_id sollte dann so aussehen SELECT req_id, id, max(date) FROM tabelle_1 GROUP BY req_id, id Date muss im GROUP nicht angegeben werden, da es von einer Funktion aufgerufen wirdn (max) Allerdings weiß ich nicht, ob die funktion MAX mit einem GROUP funktioniert. Ansonsten probiers mal mit einem ORDER BY
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.