| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 872 人关注过本帖, 1 人收藏
标题:请教各位大大,比较某列中各数字的大小,有什么方法?
只看楼主 加入收藏
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
结帖率:90%
收藏(1)
已结贴  问题点数:20 回复次数:10 
请教各位大大,比较某列中各数字的大小,有什么方法?
程序代码:
CREATE CURSOR 测试表 (姓名 C(8),得分,项目1 Y,项目2 Y,项目3 Y)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)

如:比较“项目3”列中2,3,4,5四个数字,最小的得1分,第二得2分,第三得3分.....,同数字占一个位置
结果:AAA:1+1+1=3,BBB:2+1+2=5,CCC:2+1+3=6,DDD:3+3+4=10
将结果赋值得分,再按得分从小到大排序
搜索更多相关主题的帖子: INSERT 测试 INTO 数字 比较 
2023-06-13 17:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
看不明白楼主的说明,数字相同大小如何界定

坚守VFP最后的阵地
2023-06-13 18:59
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
AAA:1+2+1=4
2023-06-13 19:02
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
是同一列比大小,最小的得1分,第二得2分。如AAA为例,1是项目1这列中是最小的,得1分,3在项目2这列是第二小的,得2分,2在项目3这列中是最小的,得1分。1+2+1=4
数字相同,如项目1和项目2的
2023-06-13 21:10
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
CREATE CURSOR 测试表 (姓名 C(8),得分 Y,项目1 Y,项目2 Y,项目3 Y)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)

一时匆忙,忘记得分的设定....
2023-06-13 23:18
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
可用数组排序搜索定位就是得第几
2023-06-14 06:15
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:10 
程序代码:
CREATE CURSOR 测试表 (姓名 C(8),得分 n(2),项目1 Y,项目2 Y,项目3 Y)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)
AFIELDS(afld)
lcStr = "姓名, 得分"
lcStr1 = SPACE(0)
FOR ln = 3 TO FCOUNT()
    lcStr = lcStr + ", " + afld[ln, 1] + ", " + " 00 xm" + TRANSFORM(ln - 2)
    lcStr1 = lcStr1 + "+ xm" + TRANSFORM(ln - 2)
ENDFOR
SELECT &lcStr FROM 测试表 INTO CURSOR csb READWRITE 
SELECT 测试表
FOR ln = 3 TO FCOUNT()
    lcfld = FIELD(ln)
    lcxm = "xm" + TRANSFORM(ln - 2)
    SELECT xm, RECNO() nrec FROM (SELECT &lcfld xm FROM 测试表 GROUP BY 1) aa INTO CURSOR temp
    UPDATE csb SET &lcxm = nrec FROM temp WHERE &lcfld = xm 
    SELECT 测试表    
ENDFOR 
SELECT csb
REPLACE 得分 WITH EVALUATE(lcStr1) ALL 
SELECT * FROM csb ORDER BY 得分

坚守VFP最后的阵地
2023-06-14 08:29
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:10 
程序代码:
LOCAL ii,xfield
CREATE CURSOR 测试表 (姓名 C(8),得分 n(2),项目1 Y,项目2 Y,项目3 Y)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)

xfile = SYS(2015)
FOR ii=1 TO 3
    xfield = '项目'+TRANSFORM(ii)
    
    SELECT distinct &xfield,CAST(0 as int) rec FROM 测试表 order by &xfield INTO CURSOR &xfile READWRITE 
    UPDATE &xfile SET rec=RECNO()
    
    UPDATE a SET a.得分=a.得分+b.rec FROM 测试表 a,&xfile b WHERE a.&xfield=b.&xfield
    
    USE IN &xfile
ENDFOR

SELECT * FROM 测试表




[此贴子已经被作者于2023-6-14 09:08编辑过]

2023-06-14 09:06
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
谢谢sdta版主和laowan001版主,问题解决
2023-06-14 09:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
CREATE CURSOR 测试表 (姓名 C(8),得分 I,项目1 I,项目2 I,项目3 I)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)

UPDATE 测试表 SET 得分=fun(1)+fun(2)+fun(3)
SELECT * FROM 测试表

FUNCTION fun(num)
    vxm = EVALUATE("测试表.项目"+TRANSFORM(num))
    cxm = "项目"+TRANSFORM(num)
    SELECT DISTINCT &cxm FROM 测试表 ORDER BY &cxm INTO ARRAY arr
    RETURN ASCAN(arr,vxm)
ENDFUNC
2023-06-14 09:57
快速回复:请教各位大大,比较某列中各数字的大小,有什么方法?
数据加载中...
 
   



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

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