Mitgliedersortierung nach Straße
Verfasst: Samstag 19. März 2016, 19:19
Klingt vielleicht erstmal ein wenig exotisch, brauchen wir im Verein jedoch für die korrekte Erstellung von Verteilerlisten und könnte vielleicht für andere auch interessant sein:
Wenn man in der Mitgliederübersicht auf die Spaltenüberschrift "Straße" klickt, werden die Einträge alphanumerisch sortiert. Da die Hausnummer keine eigene DB-Spalte ist, sieht die Ausgabe z.B. so aus:
A-Straße 1
A-Straße 10
A-Straße 11
A-Straße 2
A-Straße 23
B-Straße 1
B-Straße 10
B-Straße 7-9
B-Straße 35c
usw.
Haben möchte man natürlich (jedenfalls ich) etwas wie
A-Straße 1
A-Straße 2
A-Straße 10
A-Straße 11
A-Straße 23
B-Straße 1
B-Straße 7-9
B-Straße 10
B-Straße 35c
Da ich ohnehin einen speziellen eigenen Report benötige, hole ich mir das per sql direkt aus der DB. Das "order by"-statement sieht dann so aus (bei Bedarf erkläre ich das gerne):
order by LEFT(strasse, LOCATE(' ', strasse, -1)), CAST(REGEXP_REPLACE(SUBSTRING(strasse, LOCATE(' ', strasse, -1)+1), '[a-z,-]','') as int)
Ob das jetzt allgemeingültig ist oder die beste aller Lösungen sei dahin gestellt, Verbesserungsvorschläge nehme ich gerne entgegen.
Könnte man diese Lösung nicht in die Sortierung auf der GUI übernehmen? Oder kommt die Sortierung aus Jameica?
Henning
Wenn man in der Mitgliederübersicht auf die Spaltenüberschrift "Straße" klickt, werden die Einträge alphanumerisch sortiert. Da die Hausnummer keine eigene DB-Spalte ist, sieht die Ausgabe z.B. so aus:
A-Straße 1
A-Straße 10
A-Straße 11
A-Straße 2
A-Straße 23
B-Straße 1
B-Straße 10
B-Straße 7-9
B-Straße 35c
usw.
Haben möchte man natürlich (jedenfalls ich) etwas wie
A-Straße 1
A-Straße 2
A-Straße 10
A-Straße 11
A-Straße 23
B-Straße 1
B-Straße 7-9
B-Straße 10
B-Straße 35c
Da ich ohnehin einen speziellen eigenen Report benötige, hole ich mir das per sql direkt aus der DB. Das "order by"-statement sieht dann so aus (bei Bedarf erkläre ich das gerne):
order by LEFT(strasse, LOCATE(' ', strasse, -1)), CAST(REGEXP_REPLACE(SUBSTRING(strasse, LOCATE(' ', strasse, -1)+1), '[a-z,-]','') as int)
Ob das jetzt allgemeingültig ist oder die beste aller Lösungen sei dahin gestellt, Verbesserungsvorschläge nehme ich gerne entgegen.
Könnte man diese Lösung nicht in die Sortierung auf der GUI übernehmen? Oder kommt die Sortierung aus Jameica?
Henning