T O T A L 命 令
计算当前选定表中数值字段的总和
语 法
TOTAL TO TableName
O N FieldName
[FIELDS FieldNameLis t] [ Scope ]
[FOR lExpression1 ]
[ W H ILE lExpression2 ] [NOOPTIMIZE]
参 数 描 述
TableName
指 定 存 放 计 算 结 果 的 表 的 名 称 如 果 指 定 的 表 不 存 在 V isual FoxPro 将 创 建它 如 果 表 存 在 并 且 SET SAFETY 为 O N 则 V isual FoxPro 将 询 问 是 否 要改 写 这 个 已 存 在 的 表 如 果 SET SAFETY 为 OFF 则 不 做 任 何 提 示 直 接 改 写 输 出 表
FieldName
指 定 总 计 时 作 为 分 组 依 据 的 字 段 表 必 须 以 该 字 段 排 序 或 者 打 开 的 索 引 或索 引 标 识 必 须 以 该 字 段 作 为 其 关 键 字 表 达 式
FIELDS FieldNameList
指 定 要 总 计 的 字 段 列 表 中 的 字 段 名 用 逗 号 分 隔 如 果 省 略 了 FIELDS 子句 则 默 认 合 计 所 有 的 数 值 型 字 段
Scope
指 定 要 总 计 的 记 录 范 围 Scope 子 句 有 ALL NEXT nRecords Record
nReordNumber 和 REST
TOTAL 命 令 默 认 的 范 围 是 全 部 ALL 记 录
FOR lExpression1
指 定 一 个 条 件 只 有 满 足 该 逻 辑 条 件 lExpression1 的 记 录 包 含 在 总 计 中
如 果 lExpression1 是 可 优 化 表 达 式 那 么 Rushmore 可 以 优 化 TOTAL ... FOR
创 建 的 查 询 为 了 达 到 更 好 的 性 能 请 在 FOR 子 句 中 使 用 可 优 化 表 达 式
WH ILE lExpression2
指 定 一 个 条 件 只 要 逻 辑 表 达 式 lExpression2 计 算 为 真 .T . 时 当 前表 中 的 记 录 就 包 含 在 总 计 中
NOOPTIMIZE
关 闭 TOTAL 的 Rushmore 优 化
说 明
要使用此命令 当前工作区中的表必须经过排序或索引 对于具有相同字段值或索引关键字值的各组记录 将分别计算其总计值 总计结果放入另一个表的记录中 同时还将在此表中对这些字段值或索引关键字创建一条记录
如果第二个表中数值字段的宽度不足以放置总计值 将会发生数值溢出错误 当发生数值溢出错误时 Visual FoxPro 保存总计值最主要的部分
-
小
数 位 被 截 断 即 对 总 计 值 余 下 小 数 位 进 行 圆 整
-
如果总计值仍然不能放下 例如包含 7 位 以 上 的 数字 这时将采用科学计数法 表 示
-
最
后 用 星 号 代 替 字 段 的 内 容
请 参 阅
AVERAGE , CALCULATE , INDEX , SORT , SUM