Wie erstell ich am einfachsten über eine Abfrage eine Flop-Top liste in MS Access?

... komplette Frage anzeigen

1 Antwort

Wegen einer Abfrage eine Tabelle zu erstellen, macht man nur im äußersten Notfall bei sehr komplexen Problemen, die sonstwie nicht zu lösen wären. Deine Aufgabe gehört zu den ganz einfachen Übungen:

SELECT feld1, feld2, ... feldn FROM tabelle
WHERE ...
ORDER BY feld1 DESC

Die ersten 10 Sätze, die Du hiermit bekommst, sind die Top-10. Wenn Du das DESC weglässt, bekommst die Flop-10.

Für feld1, feld2 usw. setzt die Datenfeder ein, die Du haben willst, bei ORDER BY legst die Reihenfolge fest und gibst das Feld an, wonach Du die Sortierung haben willst (hier feld1).

Für diese Abfrage empfiehlt es sich, auf das zu sortierende Feld je einen Index für aufsteigend und absteigend zu legen.

Warum?  Wenn Du z.B. 10000 Sätze hast und Du willst den mit dem größten oder den kleinsten Wert, muss die Datenbank erst einmal alle Sätze sortieren, um den möglichweise einzigen infrage kommenden Satz zu ermitteln. Das ist nicht gerade effeftiv und kann bei größeren Datenmengen eine Weile dauern. Ist ein Index definiert, erreicht die Datenbank den benötigten Satz auf Anhieb unabhängig von der vorhandenen Datenmenge.

Anmerkung: Für die Sortierung bzw. für den Index können auch mehrere Spalten der Tabelle angegeben werden, auf- oder absteigend gemischt.

Mit der in diesem Beispiel angegeben WHERE-Anweisung kannst Du die
herangezogene Menge definieren, z.B. einen bestimmten Datumsbereich.
Ohne diese Angabe werden alle vorhandenen Sätze berücksichtigt.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cristian84
24.11.2016, 12:24

Erstmals Danke. Naja das Ding ist n bisschen komplizierter. Ich hab ne Inventur Datenbank. Die Tabelle aus der ich die Abfrage machen möchte wird jährlich gelehrt und neu befühlt. Datensätze variieren zwischen 1500 und 2000 Artikelnummern. Hau ich da jetzt n Index drauf und lösch die im nächsten Jahr beginnt der Index beim letzten Datensatz der letzten Tabelle. Und ich möchte das ja über ne Schaltfläche und nen Textfeld machen :). Und ja ich hab schon mal ne Abfrage erstellt ;) bin aber erst am erlernen und mein f* Boss setzt mich unter Druck  

0

Was möchtest Du wissen?