下面是本人原来发的一个帖子,是针对VFP9.0的,估计对其他数据库也是可行的,如果有问题应该也只需要小小的修改一下&&全市排名UPDATE szcjk SET qspm=(select COUNT(a.bmh)+1 from szcjk as a WHERE a.zf>szcjk.zf)&&县区排名UPDATE szcjk SET xqpm=(select COUNT(a.bmh)+1 from szcjk as a WHERE a.zf>szcjk.zf AND a.xqdh=szcjk.xqdh)PS:今天用到时搞出来的,现在搜索本站没有,特与大家分享。再PS:后来一搜发现其他人早就想出类似的方法,有点受打击
引用:你应该把表放上去,别人也好看明白。有点道理,我就再说明几句。1、关于表的结构qspm、xqpm:分别为全市排名和各县区排名bmh:报名号,用以区分学生zf:总分xqdh:县区代号,用以区分学生是哪个县的2、原理说明UPDATE 表名 SET 字段名=[子查询]利用子查询求得各个学生的名次3、要点update 和子查询针对的实际上是同一个表,通过表的别名(from szcjk as a )来区分字段是UPDATE后的表中的呢还是子查询中的如果还是不明白,我也没办法了
数据表(成绩)字段: ID,姓名,得分,名次Select ID, (Select count(*) from 成绩 b where b.得分<=a.得分) AS 名次 into Temp_AFrom 成绩 aUpdate 成绩 inner join Temp_A on 成绩.ID=Temp_A.IDSet 成绩.名次= Temp_A.名次Drop Table Temp_A