Hallo,
Deine Problembeschreibung habe ich leider nicht verstanden. Könntest Du bitte Dein Problem anhand eines kleinen Beispiels mit ein paar Datensätzen vorstellen. D.h. Eine Ausgangstabelle mit vielleicht 10 Datensätzen und die gewünschte Zieltabelle - mit Begründung, warum diese genauso aussieht, wie sie aussieht.
Gerne. Als einfaches Beispiel ist dies die Ausgangstabelle mit zwei Spalten a und b.
-------------
| a | b |
-------------
| 0 | Row 0 |
| 0 | Row 1 |
| 0 | Row 2 |
| 1 | Row 3 |
| 1 | Row 4 |
| 2 | Row 5 |
| 2 | Row 6 |
| 2 | Row 7 |
| 2 | Row 8 |
| 2 | Row 9 |
-------------
Ich möchte nun jeweils bis zu drei Ergebnisse mit dem gleichen Wert in Spalte 'a' bekommen, sortiert nach Spalte a und b. Das Ergebnis hier wäre also:
-------------
| a | b |
-------------
| 0 | Row 0 |
| 0 | Row 1 |
| 0 | Row 2 |
| 1 | Row 3 |
| 1 | Row 4 |
| 2 | Row 5 |
| 2 | Row 6 |
| 2 | Row 7 |
-------------
Da der Wert '0' in Spalte 'a' nur dreimal vorkommt, werden alle Datensätze mit diesem Wert gewählt, die Datensätze mit dem Wert '1' ebenfalls, da es weniger als drei sind. Von Datensätzen mit dem Wert '2' werden nur die ersten drei gewählt.
Dazu ist wichtig, dass die Werte '0','1' und '2' nicht direkt im Query angegeben werden, sondern der Query alle vorhandenen Werte der Spalte 'a' selbst gruppiert, weil später noch weitere Werte hinzukommen werden.
Ich kann das jetzt wie erwähnt lösen, indem ich erste alle einmaligen Werte aus Spalte 'a' abfrage und dann danach auf die Ergebnisse einen auf drei Datensätze limitierten Query absetze, aber das ist meiner Meinung nach ziemlich unsauber.
Kannst Du ggf. mit einer temporären Tabelle arbeiten?
Es wäre schöner, wenn es ohne geht.
Viele Grüße
Cap