|Note||This command is defined in a header file and will be preprocessed by the X# preprocessor to a function call. If you disable the standard header (-nostddefs) files then this command will not be available. If you tell the compiler to use a different standard header file (-stddef ) then this command may also be not available|
Total a series of numeric expressions for a range of records in the current work area, and assign the results to a series of variables.
SUM <nValueList> TO <idVarList> [<Scope>] [WHILE <lCondition>] [FOR <lCondition>]
|<nValueList>||The list of values to sum for each record processed. Note that the <nValueList> is required and not optional as it is in other dialects.|
|TO <idVarList>||Defines a list of one or more variables to assign the results of the sum. If any variable reference in the list is ambiguous (that is, not declared at compile time or not explicitly qualified with an alias), it is assumed to be MEMVAR. If any variable in the list is not visible or does not exist, a private variable is created using <uValue>.|
|<Scope>||The portion of the current database file to process. The default is all visible records. Scope is one or more clauses of:|
[NEXT <NEXT>] Optionally specifies the number of records to process starting
with the first record of the source file.
[RECORD <rec>] An optional record ID If specified, the processing begins
with this data record in the source file.
[<rest:REST>] The option REST specifies whether records are sequentially
searched only from the current up to the last record.
If a condition is specified, the option ALL is the default value.
[ALL] The option ALL specifies that all records from the source file are imported.
This is the default setting.
|WHILE <lCondition>||A condition that each visible record within the scope must meet, starting with the current record. As soon as the while condition fails, the process terminates. If no <Scope> is specified, having a while condition changes the default scope to the rest of the visible records in the file.|
|FOR <lCondition>||A condition that each visible record within the scope must meet in order to be processed. If a record does not meet the specified condition, it is ignored and the next visible record is processed. If no <Scope> or WHILE clause is specified, having a for condition changes the default scope to all visible records.|
This example illustrates the use of SUM:
LOCAL nTotalPrice, nTotalAmount
USE sales NEW
SUM Price * .10, Amount TO nTotalPrice, nTotalAmount
? nTotalPrice // Result: 151515.00
? nTotalAmount // Result: 150675.00
AVERAGE, COUNT, DBEval(), TOTAL