SUM-Befehl

Addiert die Werte aller oder angegebener numerischer Felder in der aktuellen Tabelle.

SUM [eExpressionList]   [Scope] [FOR lExpression1] [WHILE lExpression2]
   [TO MemVarNameList | TO ARRAY ArrayName]   [NOOPTIMIZE]

Parameter

  • eExpressionList
    Gibt ein oder mehrere Felder oder Feldausdrücke an, die addiert werden sollen. Ohne Angabe der Feldausdrucksliste werden alle numerischen Felder addiert.

  • Scope
    Gibt einen Datensatzbereich an, auf dem die Addition basieren soll. Die Bereichsklauseln sind: ALL, NEXT nRecords, RECORD nRecordNumber und REST. Weitere Informationen zu Bereichsklauseln finden Sie in der Hilfe unter Bereichsklauseln und Überblick über die Sprache.

    Der Standardbereich für SUM ist ALL, also alle Datensätze.

  • FOR lExpression1
    Gibt an, dass nur die Datensätze addiert werden, für die die logische Bedingung lExpression1 den Wert Wahr (.T.) ergibt. Durch das Einfügen von FOR können Werte bedingt zusammengefasst und unerwünschte Datensätze herausgefiltert werden.

    Rushmore optimiert einen SUM … FOR-Befehl, wenn es sich bei lExpression1 um einen optimierbaren Ausdruck handelt. Die beste Leistung erreichen Sie, indem Sie in der FOR-Klausel einen optimierbaren Ausdruck verwenden.

    Weitere Informationen zur Rushmore-Optimierung finden Sie unter SET OPTIMIZE und Verwenden von Rushmore zum Beschleunigen des Datenzugriffs.

  • WHILE lExpression2
    Gibt eine Bedingung an, bei der die Datensätze der aktuellen Tabelle so lange bei der Summierung berücksichtigt werden, wie der logische Ausdruck lExpression2 als Wahr (.T.) ausgewertet wird.

  • TO MemVarNameList
    Speichert jede Summe in einer Variablen. Wenn Sie in MemVarNameList eine Variable angeben, die nicht vorhanden ist, wird diese automatisch von Visual FoxPro erstellt. Trennen Sie die Variablennamen in der Liste jeweils durch ein Komma.

  • TO ARRAY ArrayName
    Speichert Summen in einem Array. Wenn das in SUM angegebene Array nicht vorhanden ist, wird es automatisch von Visual FoxPro erstellt. Ist das Array zwar vorhanden, aber zu klein, um alle Summen aufzunehmen, wird die Größe des Arrays automatisch angepasst.

  • NOOPTIMIZE
    Deaktiviert die Rushmore-Optimierung von SUM.

    Weitere Informationen finden Sie unter SET OPTIMIZE und Verwenden von Rushmore zum Beschleunigen des Datenzugriffs.

Beispiel

Im folgenden Beispiel werden die Summen der Felder in_stock und on_order in der Tabelle products sowie deren Gesamtsumme angezeigt.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products  && Opens Products table

SUM in_stock, on_order, in_stock+on_order ;
   TO gnInStock, gnOnOrder, gnUnits

CLEAR
?
? 'Total in stock : ', gnInStock  && Displays 3119.00
? 'Total on order:  ', gnOnOrder  && Displays 780.00
? 'Total # units :  ', gnUnits  && Displays 3899.00

Siehe auch

AVERAGE | CALCULATE | COUNT | SET OPTIMIZE | Verwenden von Rushmore zum Beschleunigen des Datenzugriffs | Bereichsklauseln | Überblick über die Sprache