分组排名次

数据表问题 | 2015-03-25 00:23:59 | 阅读 1042 次 | 评论(0)

* 说明:原表为Cjb.Dbf<见附件>,准考证号前4位为学校编码,要求根据成绩按 学校编码 分类排出 名次,排出的结果见 名次 字段,遇到不同的学校编码,名次从1开始排,当成绩相同时排出的名次一样,最后结果如:1133567

* 代码为VFP9版本



T1=Seconds()
Select Left(准考证号,4) 学校编码,准考证号,总成绩,000000 名次 From Cjb Order By 学校编码,总成绩 Desc Into Cursor Mcb ReadWrite
Go Top
Scatter Memvar Fields 学校编码,总成绩
lnCnt=1 && 记录相同学校编码的人数
lnMc=1 && 记录相同学校编码的名次
Scan
    If 学校编码=M.学校编码
        If 总成绩!=M.总成绩
            lnMc=lnCnt
        EndIf
    Else
        lnCnt=1
        lnMc=1
    EndIf 
    Replace 名次 With lnMc
    lnCnt=lnCnt+1
    Scatter Memvar Fields 学校编码,总成绩
EndScan
MessageBox("共运行 "+Transform(Seconds()-T1)+" 秒")
Browse 


文章评论,共0条
游客请输入验证码
浏览234383次
最新评论
  • cstdio:ooooooo
  • sdta:从VFP入手也不错
  • yuanhouwen:尊敬的sdta大神:作为一个编程外行,看到你关于操控EXCEL的编程程序我觉得特别神奇,想向你...