回 帖 发 新 帖 刷新版面

主题:关于分组排序后加名次的问题


有如下表:

报考学校    报考学院    报考专业    准考证号    分数
A1    B1    C1    D1    65
A1    B1    C2    D2    45
A1    B1    C1    D3    77
A1    B2    C3    D4    89
A1    B2    C3    D5    78
A1    B2    C1    D6    77
A2    B3    C1    D7    71
A2    B3    C4    D8    65
A2    B2    C2    D9    57
A2    B2    C2    D10    92


按报考学校,报考学院,报考专业,分数进行排序结果如下。

排序后如下:
报考学校    报考学院    报考专业    准考证号    分数    名次
A1    B1    C1    D3    77    1
A1    B1    C1    D1    65    2
A1    B1    C2    D2    45    1
A1    B2    C1    D6    77    1
A1    B2    C3    D4    89    1
A1    B2    C3    D5    78    2
A2    B2    C2    D10    92    1
A2    B2    C2    D9    57    2
A2    B3    C1    D7    71    1
A2    B3    C4    D8    65    1

程序如何写啊?

回复列表 (共1个回复)

沙发

SELECT VAL(right(ALLTRIM(学校),1)+right(ALLTRIM(学院),1)+right(ALLTRIM(专业),1)) as 序号,学校,学院,专业,分数,名次 FROM 表 INTO TABLE 新表
序号=fields(1)
SELECT max(VAL(right(ALLTRIM(学校),1)+right(ALLTRIM(学院),1)+right(ALLTRIM(专业),1))) from 新表 into array bj   
FOR zh=1 to bj step 1                     
SELECT max(分数) from 表 into array zd1 
z=zd1
m=1
DO while  z>=0
COUN all for 分数=z and &序号=zh to t         
IF  !empty(t)
REPL all 名次 with m for 分数=z and &序号=zh       
z=z-1
m=m+t
ELSE
z=z-1
ENDIF
ENDDO
ENDFOR

我来回复

您尚未登录,请登录后再回复。点此登录或注册