Version 3
REDUCE SELECTION ({Tabellenname; }AnzDatensätze)
Parameter | Typ | Beschreibung | |
Tabellenname | Tabelle | Zu bearbeitende Tabelle oder | |
Haupttabelle ohne Angabe | |||
AnzDatensätze | Numerisch | Anzahl der gewünschten Datensätze |
Beschreibung
Der Befehl REDUCE SELECTION lässt sich nur auf die aktuelle Auswahl des laufenden Prozesses anwenden. Er verringert die Anzahl der Datensätze in der aktuellen Auswahl von Tabellenname auf die in AnzDatensätze angegebene Anzahl. Der erste Datensatz der neuen Auswahl wird in den Hauptspeicher geladen. Er wird der aktuelle Datensatz.
Tabellenname ist optional. Wird der Parameter nicht angegeben, wird der Befehl auf die Haupttabelle angewandt.
Beispiel
Folgendes Beispiel findet zuerst die richtige Statistik zu einer weltweiten Umfrage unter den Händlern in über 20 Ländern. Unter den ersten 100 besten Händlern der Welt werden jeweils die 3 besten Händler jedes Landes mit einem Umsatz über $50.000 mit einem Preis ausgezeichnet. Diese komplexe Anfrage können Sie mit indizierten Suchläufen in wenigen Zeilen Code ausführen:
CREATE EMPTY SET([Dealers];"Gewinner") ` Erstelle leere Menge SCAN INDEX([Dealers]Sales amount;100;<) ` Wähle vom Ende des Index aus CREATE SET([Dealers];"100 beste Händler") ` Setze ausgewählte Datensätze in Menge For ($Country;1;Records in table([Countries])) ` Suche für jedes Land die Händler QUERY([Dealers];[Dealers]Country=[Countries]Name;*) ` ...mit Umsatz über $50.000 QUERY(&;[Dealers];[Dealers]Sales amount>=50000) CREATE SET([Dealers];"GewinnerHändler") ` Setze diese in eine Menge ` Sie sollten in der Gruppe der 100 besten Händler sein INTERSECTION("GewinnerHändler";"100 beste Händler";"GewinnerHändler") USE SET("GewinnerHändler") ` Potentielle Gewinner des Landes ` Sortiere sie nach Umsatz in absteigender Reihenfolge ORDER BY([Dealers];[Dealers]Sales amount;<) REDUCE SELECTION([Dealers];3) ` Nimm die 3 besten Händler CREATE SET([Dealers];"GewinnerHändler") ` Gewinner des Landes ` Lege Sie in die Liste der weltweiten Gewinner UNION("GewinnerHändler";"DieGewinner";"DieGewinner") End for CLEAR SET("100 beste Händler") ` Diese Menge wird nicht mehr benötigt CLEAR SET("GewinnerHändler") ` Diese Menge wird nicht mehr benötigt USE SET("DieGewinner") ` Hier sind die Gewinner CLEAR SET("DieGewinner") ` Diese Menge wird nicht mehr benötigt OUTPUT FORM([Dealers];"Brief für Preis") ` Wähle den Brief PRINT SELECTION([Dealers]) ` Drucke die Briefe
Referenz
Einführung in Mengen, ORDER BY, QUERY, SCAN INDEX.