Calculates the sum of the values in the specified column.
Syntax
Sum ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the sum of the data values. Column can be the column name or the column number preceded by a pound sign (#). Column can also be an expression that includes a reference to the column. The data type of column must be numeric
FOR range (optional) The data that will be included in the sum. For most presentation styles, values for range are:?ALL ?(Default) The sum of all values in column?GROUP n ?The sum of values in column in the specified group. Specify the keyword GROUP followed by the group number: for example, GROUP 1?PAGE ?The sum of the values in column on a pageFor Crosstabs, specify CROSSTAB for range:?CROSSTAB ?(Crosstabs only) The sum of all values in column in the crosstabFor Graph and OLE objects, specify the type of object for range. The values to be aggregated are determined by the range specified in the object definition. (See Usage for more information.) Values are:?GRAPH ?(Graphs only) The sum of values in column in the range specified for the Rows option of the graph?OBJECT ?(OLE objects only) The sum of values in column in the range specified for the Rows option of the OLE object
DISTINCT (optional) Causes Sum to consider only the distinct values in column when determining the sum. For a value of column, the first row found with the value is used and other rows that have the same value are ignored
expresn (optional) One or more expressions that you want to evaluate to determine distinct rows. Expresn can be the name of a column, a function, or an expression
Return value
The appropriate numeric data type. Returns the sum of the data values in column.
Usage
If you specify range, Sum returns the sum of the values in column within range. If you specify DISTINCT, Sum returns the sum of the distinct values in column, or if you specify expresn, the sum of the values of column where the value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the function. The range for the object has already been determined by the Rows setting on the Data property page (the Range property), and the aggregation function uses that range. Settings for Rows include:
?For the Graph or OLE presentation style, Rows is always All.
?For Graph objects, Rows can be All, Page, or Group.
?For OLE objects, Rows can be All, Current Row, Page, or Group. The available choices depend on the layer the object occupies.
NULL values are ignored and are not included in the calculation.
Not in validation rules or filter expressions You cannot use this or other aggregate functions in validation rules or filter expressions.
Using an aggregate function cancels the effect of setting Retrieve Rows As Needed in the DataWindow painter and Report painter. To do the aggregation, a DataWindow object or report always retrieves all rows.