| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4553 人关注过本帖
标题:foxpro2.5中如果获取一个表中某个字段的最大值?
只看楼主 加入收藏
zbzb401
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-5
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
foxpro2.5中如果获取一个表中某个字段的最大值?
比如有一个表,里面有个年龄字段,表中有N条记录,我想获取表中所有记录中年龄最大的那个值,用foxpro语言怎么写?(实现如同select max(年龄)from XXX,但不能用SQL语句)
搜索更多相关主题的帖子: 记录 最大值 最大的 
2012-11-21 20:01
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:2 
SELECT 你的表
GO TOP
****定义最大年龄为maxage
maxage=0 &&&年龄的最大值初
FOR i = 1 TO N&&你表中有N条记录,如果不知道N的值,可以用reccount()
    IF 年龄>maxage
        maxage=年龄
    ENDIF
    SKIP
ENDFOR
****返回最大年龄
RETURN maxage

[ 本帖最后由 月沐庭轩 于 2012-11-21 20:29 编辑 ]

坚持学习vfp,QQ:306805680
2012-11-21 20:09
zbzb401
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-5
收藏
得分:0 
看来只能通过遍历表实现了
2012-11-21 20:17
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:2 

也可以这样:


程序代码:
use 你的表
inde on 年龄 to ls
go bott
最大年龄=年龄
clos inde



2012-11-21 20:25
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 

还有简单的是用现成命令:

calc max(年龄) to 最大年龄

收到的鲜花
  • 月沐庭轩2012-11-21 20:42 送鲜花  10朵   附言:太好了。
2012-11-21 20:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
calculate 命令
示例 请参阅

对表中的字段或包含字段的表达式进行财务和统计操作。
语法

CALCULATE eExpressionList
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarList | TO ARRAY ArrayName]
[NOOPTIMIZE]

参数

eExpressionList

指定表达式,表达式可以包含下列函数的任意组合:
AVG(nExpression)
CNT( )
MAX(eExpression)
MIN(eExpression)
NPV(nExpression1, nExpression2 [, nExpression3])
STD(nExpression)
SUM(nExpression)
VAR(nExpression)
用逗号分隔表达式列表 eExpressionList 中的函数。这些函数仅用于 calculate 命令。在本段后面将详细说明这些函数。不要与有相似名称的独立函数相混淆。例如,CALCULATE MIN( ) 与 MIN( ) 不同。

Scope

指定计算中所使用记录的范围。只有在范围之内的记录才进行计算。Scope 子句有:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关范围子句的详细信息,请参阅 Scope 子句或《开发指南》第二章“语言概述”。包含 Scope 子句的命令只能在活动工作区内的表上操作。

FOR lExpression1

指定只有满足逻辑条件 lExpression1 的记录才进行计算。在计算中包含 FOR 子句可以有条件地选择记录,筛选出不想要的记录。若 lExpression1 是可优化的表达式,Rushmore 技术将优化CALCULATE...FOR 查询。为了获得最佳性能,应在 FOR 子句中使用可优化表达式。有关 Rushmore 可优化表达式的内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术,或《开发指南》第十七章“优化应用程序”。

WHILE lExpression2

指定一个条件,只要逻辑表达式 lExpression2 计算为“真”(.T.),记录就进行计算。

TO MemVarList

指定一个或多个用以存储计算结果的变量。若指定的内存变量不存在,Visual FoxPro 自动用该名称创建此内存变量。

TO ARRAY ArrayName

指定存储计算结果的数组。若指定的数组不存在,Visual FoxPro 自动用该名称创建此数组。若该数组存在,但容纳不下所有的计算结果,Visual FoxPro 自动增大数组以容纳信息。若数组比需要的大,多余元素的内容保持不变。计算结果按照 calculate 命令指定的顺序保存到数组中。

NOOPTIMIZE

关闭 CALCULATE 的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术 ,或《开发指南》第十七章“优化应用程序”。

AVG(nExpression)

计算 nExpression 的算术平均值。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

CNT( )

返回表中记录的数目。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

MAX(eExpression)

返回 eExpression 的最大值或最新值。在 MAX( ) 子句中可指定任何字符型、日期型、日期时间型、数值型、浮点型、整型、双精度型或货币型字段,或包含这些类型字段的表达式。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

MIN(eExpression)

返回 eExpression 的最小值或最早值。eExpression 中可包括任何字符型、日期型、日期时间型、数值型、浮点型、整型、双精度型或货币型字段,或任何使用这些类型字段的有效表达式。只有满足Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

NPV(nExpression1, nExpression2 [, nExpression3])

计算一个固定周期利率下,一系列现金流的净现值。
nExpression1 指定用十进制表示的利率。
nExpression2 指定代表一系列现金流的字段、字段表达式或数值表达式。每个现金流可正可负。当 nExpression2 是字段时,每个记录的字段值都认为是一个现金流。
nExpression3 指定可选的初始投资。如果不包括初始投资,则假定初始投资发生在第一阶段末。这个初始投资就是第一个记录,而且是负的,代表现金流出。
只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

STD(nExpression)

计算 nExpression 的标准偏差。标准偏差用来衡量字段或包含字段的表达式的值偏离平均值的程度。标准偏差越小,这些值偏离平均值就越少。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

SUM(nExpression)

对 nExpression 的值求和。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

VAR(nExpression)

从 nExpression 的平均值中计算方差。方差是标准偏差的平方。方差越小,值偏离平均值就越少。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

说明
含有 Null 值的记录不包含在 CALCULATE 的操作中。

坚守VFP最后的阵地
2012-11-21 20:35
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
以下是引用茵梦湖在2012-11-21 20:34:24的发言:


还有简单的是用现成命令:

calc max(年龄) to 最大年龄

知识学不完呀,非常棒,太棒了!!!

坚持学习vfp,QQ:306805680
2012-11-21 20:42
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:2 
长见识了...

我是来向高手学习的!
2012-11-21 21:07
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:2 
以下是引用月沐庭轩在2012-11-21 20:42:21的发言:

 
知识学不完呀,非常棒,太棒了!!!
同感!尽管接触VFP已经十多年了,但总觉得还在门口徘徊,只了解点皮毛。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-22 08:59
梅阳派
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-11-7
收藏
得分:0 
回复 5楼 茵梦湖
太棒了,非常感谢。找了一大圈儿,就您发这个,正好用!
2021-11-07 13:06
快速回复:foxpro2.5中如果获取一个表中某个字段的最大值?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013952 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved