vfp中total命令怎么用啊,举个例子.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 20:50:08
vfp中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 保存总计值最主要的部分:
小数位被截断,即对总计值余下小数位进行圆整.
如果总计值仍然不能放下,例如包含七位以上的数字,这时将采用科学计数法表示.
最后,用星号代替字段的内容.
eg:
use 入库清单
TOTAL TO 入库汇总表 ON 货物名称 fields 数量, 金额
就是从入库清单中汇总所有货物的入库数量和该货物的总金额.
再问: 学生1表已建立了1个宽度为1的字符型字段FSD(分数段),利用TOTAL命令写出按数值型成绩字段(宽度为5,小数为1)的百分位上的数(如234分取2)进行分数段分类统计的命令组。 这个怎么搞啊 ?求大侠指教。。。Thank you!!!!
再答: repl all fsd with allt(str(int(成绩/100))) TOTAL TO 分数段 ON FSD && 不常用total这个命令,不晓得对不对,你回头自己试一试。
再问: repla all fsd with subs(str(入学成绩,5,1),1,1) index on fsd tag cj total on fsd to hu 我们老师大致是这样写的,但是 第一个replace之后fsd字段就有显示了,后面的没什么用啊
语法
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 保存总计值最主要的部分:
小数位被截断,即对总计值余下小数位进行圆整.
如果总计值仍然不能放下,例如包含七位以上的数字,这时将采用科学计数法表示.
最后,用星号代替字段的内容.
eg:
use 入库清单
TOTAL TO 入库汇总表 ON 货物名称 fields 数量, 金额
就是从入库清单中汇总所有货物的入库数量和该货物的总金额.
再问: 学生1表已建立了1个宽度为1的字符型字段FSD(分数段),利用TOTAL命令写出按数值型成绩字段(宽度为5,小数为1)的百分位上的数(如234分取2)进行分数段分类统计的命令组。 这个怎么搞啊 ?求大侠指教。。。Thank you!!!!
再答: repl all fsd with allt(str(int(成绩/100))) TOTAL TO 分数段 ON FSD && 不常用total这个命令,不晓得对不对,你回头自己试一试。
再问: repla all fsd with subs(str(入学成绩,5,1),1,1) index on fsd tag cj total on fsd to hu 我们老师大致是这样写的,但是 第一个replace之后fsd字段就有显示了,后面的没什么用啊