SQL Problem

#456071
Lesenswert?

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 #456620
Lesenswert?

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
Lesenswert?

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.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren