SUM (Comando)
Totaliza los valores de todos los campos numéricos especificados en la tabla actual seleccionada.
SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]
Parámetros
eExpressionList
Especifica uno o varios campos o expresiones de campo que se van a totalizar. Si se omite la lista de expresiones de campo, se totalizarán todos los campos numéricos.Scope
Especifica un intervalo de registros que se van a utilizar en el total. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. Para obtener más información acerca de las cláusulas de alcance, vea los temas en pantalla Cláusulas de alcance e Introducción al lenguaje.El alcance predeterminado de SUM es ALL (todos los registros).
FOR lExpression1
Especifica que solamente se incluyen en el total los registros para los cuales la condición lógica lExpression1 da como resultado verdadero (.T.). La inclusión de FOR le permite calcular totales de registros de forma condicional, descartando los registros no deseados.Si lExpression1 es una expresión optimizable, Rushmore optimizará un comando SUM ... FOR. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Para obtener más información acerca de la optimización Rushmore, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los registros de la tabla activa se incluyen en el total siempre y cuando la expresión lógica lExpression2 dé como resultado verdadero (.T.).TO MemVarNameList
Almacena cada total en una variable. Si especifica en MemVarNameList el nombre de una variable que no existe, Visual FoxPro la creará automáticamente. Separe los nombres de variables en la lista con comas.TO ARRAY ArrayName
Almacena los totales en una matriz de variables. Si la matriz que especifica en SUM no existe, Visual FoxPro la creará automáticamente. Si la matriz existe y es demasiado pequeña para albergar todos los datos, se aumentará automáticamente el tamaño de la matriz para admitir los totales.NOOPTIMIZE
Desactiva la optimización Rushmore de SUM.Si desea obtener más información, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
Ejemplo
El ejemplo siguiente muestra los totales de los campos in_stock
y on_order
de la tabla products
, junto con una suma de los dos totales.
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
Vea también
AVERAGE | CALCULATE | COUNT | SET OPTIMIZE | Utilizar Rushmore para agilizar el acceso a los datos | Scope (Cláusulas) | Introducción al lenguaje