Small DataWindow expression function
Description
Finds a small value at a specified ranking in a column (for
example, third-smallest, fifth-smallest) and returns the value of
another column or expression based on the result.
Syntax
1 |
<span>Small</span> ( <span>returnexp</span>, <span>column</span>, <span>nbottom</span> { FOR <span>range</span> { DISTINCT { <span>expres1</span> <br> {, <span>expres2</span> {, ... } } } } } ) |
Argument |
Description |
---|---|
returnexp |
The value you want returned when the |
column |
The column that contains the small value |
nbottom |
The relationship of the small value to |
FOR range (optional) |
The data that will be included when finding
For Crosstabs, specify CROSSTAB for range:
For Graph and OLE objects, specify one of the following:
|
DISTINCT (optional) |
Causes Small to consider |
expresn (optional) |
One or more expressions that you want |
Return Values
The datatype of returnexp. Returns the nbottom-smallest
value if it succeeds and -1 if an error occurs.
Usage
If you specify range, Small returns
the value in returnexp when the value in column is
the nbottom-smallest value in range.
If you specify DISTINCT, Small returns returnexp when
the value in column is the nbottom-smallest
value of the distinct values in column, or
if you specify expresn, the
nbottom-smallest
for each distinct value of expresn.
For graphs and OLE objects, you do not select the range when
you call the function. The range 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 the following:
-
For the Graph or OLE presentation style, Rows is
always All. -
For Graph controls, Rows can be All, Page, or Group.
-
For OLE controls, Rows can be All, Current Row,
Page, or Group. The available choices depend on the layer the control
occupies.

Min might be faster
If you do not need a return value from another column and
you want to find the smallest value (nbottom = 1),
use Min; it is faster.
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 painter. To do the aggregation, a DataWindow object always retrieves
all rows.
Examples
These expressions return the names of the salespersons
with the three smallest sales (sum_sales is the sum of
the sales for each salesperson) in group 2, which might be the salesregion
group. Note that sum_sales contains the values being compared,
but Small returns a value in the name column:
1 |
<span>Small</span>(name, sum_sales, 1 for group 2)<span><br>Small</span>(name, sum_sales, 2 for group 2)<span><br>Small</span>(name, sum_sales, 3 for group 2) |
This example reports the salesperson with the third-smallest
sales, considering only the first entry for each salesperson:
1 |
<span>Small</span>(name, sum_sales, 3 for all DISTINCT sum_sales) |