4D v16.3

REDUCE SELECTION

Home

 
4D v16.3
REDUCE SELECTION

REDUCE SELECTION 


 

REDUCE SELECTION ( {Tabellenname ;} AnzDatensätze ) 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Tabelle zum Bearbeiten oder Haupttabelle ohne Angabe
AnzDatensätze  Lange Ganzzahl in Anzahl der gewünschten Datensätze

Der Befehl REDUCE SELECTION erstellt eine neue Auswahl der Datensätze für Tabellenname. Er verringert die Anzahl der Datensätze in der aktuellen Auswahl von Tabellenname auf die in AnzDatensätze angegebene Anzahl. REDUCE SELECTION wird auf die aktuelle Auswahl von Tabellenname im aktuellen Prozess angewendet. 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.

Hinweis:
Nach Ausführen der Anweisung REDUCE SELECTION(Tabellenname ;0) gibt es in Tabellenname keine Auswahl mehr und auch keinen aktuellen Datensatz.

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



Siehe auch 

Einführung in Mengen
ORDER BY
QUERY
SCAN INDEX

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Auswahl
Nummer: 351

Dieser Befehl ändert den aktuellen DatensatzDieser Befehl ändert die aktuelle AuswahlThis command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: < 4D v6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)