Peter Mairhofer: Daten mit GROUP BY einschränken und mit HAVING auswählen

Beitrag lesen

Hi,

Ich hab über eine komplexe Abfrage mit einigen JOINs folgende Ergebnismenge:

http://img232.imageshack.us/img232/2256/withoutgroupob4.png

Im Endeffekt sagt die Liste auf: Das nächste Element von 0014 ist 06166, voriges gibt es nicht.
Oder: Das Vorgängerelement von 0014anh2 ist 0014anh1 und das Nachfolgerelement ist 0014anh4.

Nur: Wie bringe ich die restlichen Datensätze raus?

Es müsste (so wie die Liste jetzt formatiert ist) immer genau die erste Zeile einer Gruppe übrig bleiben, das wäre das für mich gewünschte Ergebnis.

Nun hab ich schon einiges mit HAVING herumgespielt (z.B. "HAVING delta = MAX(delta)") aber ich brings nicht zammen :-(

Kann mir da wer weiterhelfen?

Vielen Dank im Vorraus!
lg,
Peter

PS: RDBMS ist mySQL5, es sollte aber nach Möglichkeit auch in SQLite3 funktionieren...
PPS: Die "delta"-Spalte stellt den Abstand zwischen prev_order und next_order dar, wobei eine spezielle NULL Behandlung eingefügt wurde. In MySQL:

(IF(ISNULL(prev.level_order),0,prev.level_order) - IF(ISNULL(next.level_order),0,next.level_order)) AS delta