Ilja: Sql Abfrage mit Gruppierung

Beitrag lesen

yo,

schnittnummer   int(10)    (Zahl von 0 - ca 10000,Pri. Key)

das ist nicht ideal, einen sogenannten sprechenden schlüssel als primary key zu benutzen. wenn es keine gründe dafür gibt, zum beispiel vorgabe des kunden, dann nimm lieber einen künstlichen schlüssel und mach für die schnittnummer eine extra spalte, die unique und not null contraints besitzt.

Die Zeilen des zweiten und des letzten Blocks haben jeweils die selbe Gruppe.

das kann ich nicht erkennen, ist nicht der zweite wert in den beispieldaten die gruppenzuordnung oder irre ich mich da ?

Ist es möglich, in einer SQL Abfrage von den Blocks, die jeweils die selbe Gruppennummer haben die kleinste und größte Schnittnummer zu bekommen. Wenn die Gruppennummer 0 ist soll direkt die Schnittnummer raus kommen.

ja, das ist nicht besonders schwer, ich würde keinen union wie bereits vorgeschlagen benutzen, da du damit keine felxibilität erreichst, wenn mehr gruppen dazu kommen.

besser sind "korrelierenden unterabfragen", in der die ganze magic steckt:

SELECT DISTINCT tab1.hier_spalten_zur_ausgabe_angeben
FROM tablle tab1
WHERE tab1.schnitternummer = (SELECT MAX(tab2.schnittnummer) FROM tabelle tab2 WHERE tab1.gruppe = tab2.gruppe)
OR tab1.schnitternummer = (SELECT MIN(tab3.schnittnummer) FROM tabelle tab3 WHERE tab1.gruppe = tab3.gruppe)

Ilja