vfp中total命令的用法
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 03:16:10
vfp中total命令的用法
一个表有三个字段:id date num(数值)
假如数据如下:
id date num
a 9/5/2007 1
b 9/5/2007 2
c 9/5/2007 5
a 9/6/2007 8
a 9/7/2007 7
如何对这个表按id分类汇总?num求和后date怎么处理?在vfp中有个total命令,请问是怎么用的?
一个表有三个字段:id date num(数值)
假如数据如下:
id date num
a 9/5/2007 1
b 9/5/2007 2
c 9/5/2007 5
a 9/6/2007 8
a 9/7/2007 7
如何对这个表按id分类汇总?num求和后date怎么处理?在vfp中有个total命令,请问是怎么用的?
最简单的命令不是用total,可以用calculate命令,例如,你要统计所有id为a的num总和到变量num_total:
calculate sum(num) for id="a" to num_total
如果你要统计9/5/2007的
calculate sum(num) for date={9/5/2007} to num_total
total 命令:
计算当前选定表中数值字段的总和.
TOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope]
[FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
参数
TableName
指定存放计算结果的表的名称.如果指定的表不存在,Visual FoxPro 将创建它;如果表存在,并且 SET SAFETY 为 ON,则 Visual FoxPro 将询问是否要改写这个已存在的表.如果 SET SAFETY 为 OFF,则不做任何提示直接改写输出表.
FieldName
指定总计时作为分组依据的字段.表必须以该字段排序,或者打开的索引或索引标识必须以该字段作为其关键字表达式.
FIELDS FieldNameList
指定要总计的字段.列表中的字段名用逗号分隔.如果省略了 FIELDS 子句,默认合计所有的数值型字段.
Scope
指定要合计的记录范围.范围子句有:ALL,NEXT nRecords,Record nRecordNumber 和 REST.有关范围子句的详细内容,请参阅联机主题中的 scope(作用域)子句 或 语言概述.
TOTAL 命令默认的范围是全部 (ALL) 记录.
FOR lExpression1
指定一个条件,只有满足该逻辑条件 lExpression1 的记录包含在总计中.
如果 lExpression1 是可优化表达式,那么 Rushmore 可以优化 TOTAL ...FOR 创建的查询.为了达到更好的性能,请在 FOR 子句中使用可优化表达式.
详细信息,参见SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度.
WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 计算为“真”(.T.) 时,当前表中的记录就包含在总计中.
NOOPTIMIZE
关闭 TOTAL 的 Rushmore 优化.
详细信息,参见SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度.
备注
要使用此命令,当前工作区中的表必须经过排序或索引.对于具有相同字段值或索引关键字值的各组记录,将分别计算其总计值.总计结果放入另一个表的记录中,同时在此表中还将对这些字段值或索引关键字值创建一条记录.
如果第二个表中数值字段的宽度不足以放置总计值,将会发生数值溢出错误.当发生数值溢出错误时,Visual FoxPro 保存总计值最主要的部分:
小数位被截断,即对总计值余下小数位进行圆整.
如果总计值仍然不能放下,例如包含七位以上的数字,这时将采用科学计数法表示.
最后,用星号代替字段的内容.
calculate sum(num) for id="a" to num_total
如果你要统计9/5/2007的
calculate sum(num) for date={9/5/2007} to num_total
total 命令:
计算当前选定表中数值字段的总和.
TOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope]
[FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
参数
TableName
指定存放计算结果的表的名称.如果指定的表不存在,Visual FoxPro 将创建它;如果表存在,并且 SET SAFETY 为 ON,则 Visual FoxPro 将询问是否要改写这个已存在的表.如果 SET SAFETY 为 OFF,则不做任何提示直接改写输出表.
FieldName
指定总计时作为分组依据的字段.表必须以该字段排序,或者打开的索引或索引标识必须以该字段作为其关键字表达式.
FIELDS FieldNameList
指定要总计的字段.列表中的字段名用逗号分隔.如果省略了 FIELDS 子句,默认合计所有的数值型字段.
Scope
指定要合计的记录范围.范围子句有:ALL,NEXT nRecords,Record nRecordNumber 和 REST.有关范围子句的详细内容,请参阅联机主题中的 scope(作用域)子句 或 语言概述.
TOTAL 命令默认的范围是全部 (ALL) 记录.
FOR lExpression1
指定一个条件,只有满足该逻辑条件 lExpression1 的记录包含在总计中.
如果 lExpression1 是可优化表达式,那么 Rushmore 可以优化 TOTAL ...FOR 创建的查询.为了达到更好的性能,请在 FOR 子句中使用可优化表达式.
详细信息,参见SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度.
WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 计算为“真”(.T.) 时,当前表中的记录就包含在总计中.
NOOPTIMIZE
关闭 TOTAL 的 Rushmore 优化.
详细信息,参见SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度.
备注
要使用此命令,当前工作区中的表必须经过排序或索引.对于具有相同字段值或索引关键字值的各组记录,将分别计算其总计值.总计结果放入另一个表的记录中,同时在此表中还将对这些字段值或索引关键字值创建一条记录.
如果第二个表中数值字段的宽度不足以放置总计值,将会发生数值溢出错误.当发生数值溢出错误时,Visual FoxPro 保存总计值最主要的部分:
小数位被截断,即对总计值余下小数位进行圆整.
如果总计值仍然不能放下,例如包含七位以上的数字,这时将采用科学计数法表示.
最后,用星号代替字段的内容.