| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1221 人关注过本帖
标题:多个表进行统一综合操作,都来看看!
只看楼主 加入收藏
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
结帖率:93.88%
收藏
已结贴  问题点数:20 回复次数:9 
多个表进行统一综合操作,都来看看!
今有高一、高二、高三年级各70各班级的成绩表共210个表,表的结构相同,表的结构为

考试号、姓名、语文、数学、英语、物理、化学、地理、历史、政治、生物

如何较快的求出每个年级的每个班的每学科(例如语文、按语文排序)的前40名的平均分?

今有高一、高二、高三年级各70各班级的成绩表,共210个表,

表名:f06xm01,f06xm02,...f06xm70.dbf

      f07xm01,f07xm02,...f07xm70.dbf

       f08xm01,f08xm02,...f08xm70.dbf

搜索更多相关主题的帖子: 成绩表 英语 历史 化学 
2009-12-24 16:24
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:1 
很简单的~

程序代码:
for ii=6 to 8  && 定位年级
    for jj=1 to 70  && 定位班级
        某班成绩表名 ="f" +padl(ii,2,"0") +"xm" +padl(jj,2,"0")   && 定位成绩表名
        for kk=1 to 10
            课程名 =subs("语文、数学、英语、物理、化学、地理、历史、政治、生物",kk*6-5,4)  && 定位课程 
            sele ... from 某班成绩表名  where ... 课程名 ... into curs tmp   && 统计前40平均分
            inse into 统计表 ...    && 将统计保存
        endfor
    endfor
endfor
2009-12-24 17:00
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
收藏
得分:0 
茵梦湖大侠能否详细点?
是在一个项目中吗?
sele ... from 某班成绩表名,运行时说有问题.
2009-12-24 17:57
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:1 
其实是一个很简单的问题.不必需要那么多表.一个表足够了.
表结构这样设置:
姓名 科目 成绩  班级 年级
目前我正在使用.我做有这样的软件,不知你们学校需要吗?可以解决各种各样的成绩处理,考场座位安排,新生编班,课程表安排,试题库随机出题
联系电话:0771-7155373或登陆http://tz.留言版留言

[ 本帖最后由 TZTJ 于 2009-12-24 23:03 编辑 ]
2009-12-24 21:32
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
收藏
得分:0 
我只编程,不买软件,只是爱好,对不起,谢谢,我只寻求帮助。
2009-12-24 22:04
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:8 
建议把这210个表合并成一个表,字段为:年级、班级、考号、姓名、语文、数学、英语、物理、化学、地理、历史、政治、生物,前四个为字符型,其余均为数值型。这样便于查询、统计等操作。
2009-12-25 06:38
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
收藏
得分:0 
我的主要意思是探索一下利用表名中的数字规律,利用循环语句,操作多个表表。谢谢
向sywzs大侠求助,能否利用表名中的数字规律,利用循环语句合成一个表。
2009-12-25 12:38
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:8 
下面的代码建了一个临时表,然后把所有的210个表合并到临时表中。
CREATE CURSOR 表0(表名 c(7),考号 c(12),姓名 c(8),语文 n(6,1),数学 n(6,1),英语 n(6,1),物理 n(6,1),化学 n(6,1),地理 n(6,1),历史 n(6,1),政治 n(6,1),生物 n(6,1))
FOR I=6 TO 8
  BM1="f"+STR(I,2)
  FOR J=1 TO 70
    BM2=CHRTRAN(BM1+"xm"+STR(J,2)," ","0")
    APPEND FROM &BM2
    REPLACE 表名 WITH BM2 FOR 表名="  "
  NEXT
NEXT
2009-12-25 14:25
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:1 
4楼的建议是正确的。楼主将各班单独保存为一个表,然后对数百个表进行操作,用程序虽然可以做得到,但效率非常低,编程的难度也相应增大。事实上只要增加年级和班级的编号字段,就可以将这数百个表合并成为一个表,操作也就容易多了,效率也将大大提高。
要利用文件名中规律(数字或字母为序)对文件进行操作并不难,假设楼主的成绩表文件名是以“成绩”+“年级序号”+“班级编号”+“.dbf”,如高二(8)班成绩表的文件名为“成绩208.dbf”,则可以用以下代码实现:
for i=1 to 3
   for j=1 to 70
      dbfname="成绩"+str(i,1)+right(str(100+j,3),2)+".dbf"
      use &dbfname
     其他操作
      use
   endfor
endfor
不过这样做缺点很多,事先必须知道年级数和班级数,而且各年级的班级数需要相同。否则又需要用代码判断区别。
程序打开和关闭这么多的文件也需要大量的时间。等等...

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2009-12-25 20:01
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:1 
最好增加"学号"字段,可以防止同名出现.这样你需要什么数据,都可以通过sql编程得到.比如:各科平均分、总分年级、班级排名,四率统计等等。
2009-12-25 22:39
快速回复:多个表进行统一综合操作,都来看看!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030013 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved