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.
Gast
#456250
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);
Gast
#456423
Schreib am besten mal ein Beispiel, wie das Ergebnis aussehen soll.
Gast
#456620
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.
Gast
#461135
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.