关于vfp的一个问题
student表:sno,sneng
score表:sno,sscore,ssub
首先对两个表输入数据,sno为学好,sneng为能力得分,sscore为成绩,ssub为科目,student表sno为主码,第二个表(sno,ssub)为主码
第二个表中对同一个学生各科成绩计算平均值为智力得分,即avg(sscore) group by sno...
要求输入一个学生的学号,查询出该学生的名次,我用的是
select count(*) from student,score where (avg(score.sscore)*0.7+sneng*0.3)>(thisform.text2.value) and student.sno=student.sno into array qxpm
thisform.text5.value=qxpm
排名是根据总分排名,总分的计算方法是能力得分*0.3+智力得分*0.7
用的软件是vfp,avg这一块总是提示错误。。。。希望指教啊。。试了一个小时了。。。
麻烦大家了啊。。新手。。
[解决办法]
请参考:http://topic.csdn.net/u/20111004/10/706766b0-9f43-4295-9e04-06a1da1e0d0e.html
[解决办法]
表单INIT代码如下
SELECT SNO,SNAME,AVG(SSCORE) AS 智力 FROM MANEGEMENT!SCORE GROUP BY SNO into cursor LSSELECT SNO,SNAME,SDE+STI+SNENG AS 能力 FROM MANEGEMENT!STUDENT INTO CURSOR LSBSELECT LS.SNO,LS.SNAME,LS.智力,LSB.能力,(LS.智力*0.7)+(LSB.能力*0.3) AS 总分,00 AS 名次 FROM LS,LSB WHERE LS.SNO==LSB.SNO INTO TABLE PMBALTER TABLE PMB ALTER 总分 N(4)INDEX ON 总分 TAG ZF DESCENDINGY=1 && 分数最高者名次(mc)为1 X=总分 FOR I=1 TO RECCOUNT() GO I REPLACE 名次 WITH IIF(总分=X,Y,RECNO()) Y=名次 X=总分ENDFOR GO TOPWITH THISFORM.GRID1 .COLUMNCOUNT=FCOUNT("PMB") .RECORDSOURCE="PMB" .SETALL("WIDTH",75,"COLUMN") FOR I=1 TO FCOUNT("PMB") .COLUMNS(I).HEADER1.CAPTION=FIELD(I) ENDFORENDWITH