首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

关于vfp的一个有关问题

2012-05-08 
关于vfp的一个问题student表:sno,snengscore表:sno,sscore,ssub首先对两个表输入数据,sno为学好,sneng为能

关于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代码如下

SQL code
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 

热点排行