ms Access limit
Merlin
- datenbank
0 Vinzenz Mai1 Axel Richter0 Tom
Hallo zusammen
ich habe eine Frage zum ms Access. Ist es möglich eine art Blätterfunktion in ein SQL statement zu schreiben. in der Art von limit und offset. Das müsste doch gehen. Habe schon einige seiten durch aber noch nichts brauchbares gefunden.
Ich danke euch.
Mit freundlichen Grüssen
Merlin
Hallo
ich habe eine Frage zum ms Access. Ist es möglich eine art Blätterfunktion in ein SQL statement zu schreiben.
Nein, nicht in SQL
in der Art von limit und offset.
Nein, das kennt Jet-SQL, der Dialekt der Database-Engine hinter MS Access nicht.
Das ist eines der Features von MySQL-SQL, die ich bei anderen DBMS vermisse.
Das müsste doch gehen. Habe schon einige seiten durch aber noch nichts brauchbares gefunden.
Wie auch? Jet-SQL kennt nur TOP. Damit kannst Du Dir die _ersten_ Einträge einer Abfrage anzeigen lassen.
Freundliche Grüße
Vinzenz
Hallo,
in der Art von limit und offset.
Das ist eines der Features von MySQL-SQL, die ich bei anderen DBMS vermisse.
Wie auch? Jet-SQL kennt nur TOP. Damit kannst Du Dir die _ersten_ Einträge einer Abfrage anzeigen lassen.
Mit Trick 17 kann man so etwas aber in einer _sortierten_ Datensatzmenge nachbauen. Man nimmt die TOP 20 einer sortierten Menge, sortiert diese genau entgegengesetzt, nimmt daraus die TOP 10 und sortiert diese wieder richtig. Dann erhält man die Sätze 11 - 20 der sortierten Menge. Entsprechend bei Top 10 aus Top 30 die Sätze 21 - 30 usw.
Beispiel:
SELECT *
FROM (SELECT top 10 *
FROM (SELECT top 30 *
FROM artikel ORDER BY Artikelname) AS artikel1 ORDER BY Artikelname desc) AS artikel2 ORDER BY Artikelname;
viele Grüße
Axel
Hello,
Mit Trick 17 kann man so etwas aber in einer _sortierten_ Datensatzmenge nachbauen. Man nimmt die TOP 20 einer sortierten Menge, sortiert diese genau entgegengesetzt, nimmt daraus die TOP 10 und sortiert diese wieder richtig. Dann erhält man die Sätze 11 - 20 der sortierten Menge. Entsprechend bei Top 10 aus Top 30 die Sätze 21 - 30 usw.
Guter Trick!
Aber wie reagiert das DBMS, wenn die Datenmenge zu groß wird?
Zum Vorwärtsblättern kann man auch mit einem Hilfsschlüssel arbeiten.
Der besteht aus Sortierkriterium und ID (Autoincrement) des Datensatzes.
Dann muss man sich nur merken, welche Werte am Ende der letzten Seite für Datenwert und ID galten.
Mit einer einfachen [Pseudo...] "where 'aktueller_hilfsschlüssel' > 'letzter_Hilfsschlüssel" und natürlich TOP kann man dann auch in großen Datenmengen noch bequem navigieren, auch wenn da in der sortiertem Datenspalte 1000 Eintäge hintereinander mit "PHP" oder "Meier" stehen. Der Kombinationsschlüssel ist immer Unique _und_ er sorgt für eine gleichbleibende Sortierung der Ergebnismenge!
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom