Im Beitrag vom 21. Oktober 2012 habe ich eine Lösung vorgestellt, mit der sich Datensätze einer Tabelle automatisch durchnummerieren lassen. Diese Variante funktioniert allerdings nicht, sobald nach einem anderen Feld als dem durch AutoWert generierten Primärschlüsselfeld sortiert werden soll.
Bild 1: Die in der Variante vom 21. Oktober gewählte Nummerierung gerät beim Sortieren nach Nachnamen durcheinander.
Wie also kann beim Nummerieren eine alternative Sortierung berücksichtigt werden?
Nummerierung per Unterabfrage ermöglicht alternative Sortierung
Eine Nummerierung kann auch mittels einer Unterabfrage erreicht werden:
Nummer: (Select Count(*) from tblMitglieder as temp where temp.[Nachname] < tblMitglieder.Nachname)+1
In dieser Unterabfrage wird ermittelt, wie viele Nachnamen es gibt, die vor dem aktuellen Nachnamen liegen. Dieser Zahl wird dann eine 1 hinzuaddiert.
Bild 2: Das Nummerieren in einer nach Nachnamen sortierten Liste funktioniert per Unterabfrage
Fazit: Wird eine alternative Sortierung gewünscht, so ist im WHERE-Teil der Unterabfrage auf beiden Seiten der Bedingung das Feld einzubringen, nach dem in der eigentlichen Abfrage sortiert wird.