Laufende Nummer in Abfrage nach Sortierung

13/11/2008 - 18:03 von Kai Apel (Berlin) | Report spam
Liebe NG,

ich habe eine Tabelle, die ich in einer Abfrage nach bestimmten
Kritieren (unabhàngig vom Index!) zu gruppieren und zu sortieren habe.
Für jedes Element der Gruppe möchte ich dann eine laufende Nummer
erzeugen.
Nach FAQ 3.11 klappt das nur, wenn der Index (autowert, unique) der
Tabelle auch aufsteigend ist
"WHERE [Temp].[Id] < [Artikel].[Id])+1".

Jetzt habe ich das Problem, dass die Indizes willkürlich sind, dass
heißt, wenn ich meine Sortierung nach einer Gruppe mache, bekomme ich
folgendes Ergebnis, das für jedes Element nummeriert werden soll:

also aus:
Gruppe ID
A 123
A 343
A 32
A 322
B 21
B 35
B 1

soll werden:
Gruppe ID lfd
A 123 1
A 343 2
A 32 3
A 322 4
B 21 1
B 35 2
B 1 3



Mit der gelàufigen Standardabfrage geht das dass nur nach
aufsteigendem Index:

Gruppe ID lfd
A 32 1
A 123 2
A 322 3
A 343 4
B 1 1
B 21 2
B 35 3

d.h. der Index muss bereits unabhàngig von der Sortierung aufsteigend
sein. Gibt es eine einfache Möglichkeit das abzuwandeln?

Ich könnte mir natürlich behelfen, wenn ich die Tabelle sortiert in
eine neue ablege, dann der Index erzeuge und darauf die Abfrage mache
oder mich durchs Recordset wühlen.

Diese Subquery macht ja letztendlich nichts weiter als zu gucken, ob
der Index größer ist und für die laufende Nummer ein draufzuzàhlen
oder habe ich da was missverstanden?

Kai (Berlin)
 

Lesen sie die antworten

#1 Kai Apel (Berlin)
13/11/2008 - 19:02 | Warnen spam
So mit dem Workaround über die Hilftabelle klappt das natürlich, wenn
ich nur mit einer Abfrage arbeiten möchte, muss ich ich die
Sortierkriterien in die Unterabfrage mit Übernehmen. Na mal
ausprobieren, ob ich den SQL "gebastelt" bekomme (mit aufsteigendem
Group und aufsteigen Kriterium A und abteigendem Kriterium B).

Kai

Ähnliche fragen