| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7230 人关注过本帖
标题:求分类汇总按照老师名字按照积分做出每个老师的总积分。
只看楼主 加入收藏
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 
程序代码:
Clear 
Close Databases all
*!* 数组变量设置
Local akm[7],bkm[7],x[16]
* 科目
akm[1]="Yw" && 语文
akm[2]="Sx" && 数学
akm[3]="Yy" && 英语
akm[4]="Wl"
akm[5]="Hx"
akm[6]="Sw"
akm[7]="Zf"

bkm[1]="Yw" && 语文
bkm[2]="Sx" && 数学
bkm[3]="Yy" && 英语
bkm[4]="Wl"
bkm[5]="Hx"
bkm[6]="Sw"
bkm[7]="Zf"

* 保存计数结果的变量
X=0

Use 第一学期期中积分1 In 0
SELECT MAX(VAL(bj)) FROM 第一学期期中积分1 INTO ARRAY amax
Select 第一学期期中积分1
DELETE FOR RECNO()>amax
PACK

SCAN for !Empty(bjs)
    Select 第一学期期中积分1
    For i=1 to Alen(akm,1)
        ckm=akm[i]+"kmjf"
        dkm=bkm[i]+"jfmc"

            Replace &ckm with 16 FOR &dkm=1 in 第一学期期中积分1
             Replace &ckm with 15 FOR &dkm=2 in 第一学期期中积分1
              Replace &ckm with 14 FOR &dkm=3 in 第一学期期中积分1
               Replace &ckm with 13 FOR &dkm=4 in 第一学期期中积分1
                Replace &ckm with 12 FOR &dkm=5 in 第一学期期中积分1
                 Replace &ckm with 11 FOR &dkm=6 in 第一学期期中积分1
                  Replace &ckm with 10 FOR &dkm=7 in 第一学期期中积分1
                   Replace &ckm with 9 FOR &dkm=8 in 第一学期期中积分1
                    Replace &ckm with 8 FOR &dkm=9 in 第一学期期中积分1
                     Replace &ckm with 7 FOR &dkm=10 in 第一学期期中积分1
                      Replace &ckm with 6 FOR &dkm=11 in 第一学期期中积分1
                       Replace &ckm with 5 FOR &dkm=12 in 第一学期期中积分1
                        Replace &ckm with 4 FOR &dkm=13 in 第一学期期中积分1
                         Replace &ckm with 3 FOR &dkm=14 in 第一学期期中积分1
                          Replace &ckm with 2 FOR &dkm=15 in 第一学期期中积分1
                           Replace &ckm with 1 FOR &dkm=16 in 第一学期期中积分1
                           
                          
        EndFor
        X=0

ENDSCAN


弄了个复杂的
2018-07-16 23:11
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 

CLOSE DATABASES ALL
CREATE CURSOR zjfb (序号 c(12),姓名 c(8),班级数 n(5,0),班级名 c(30),总分 n(5,0),平均 n(7,2))
USE jfb IN 0
SELECT jfb
LOCAL azd[FCOUNT()-1]
FOR i=2 TO FCOUNT()
    azd[i-1]=FIELD(i)
ENDFOR
DIMENSION azd[ALEN(azd,1)/2,2]
FOR i=1 TO ALEN(azd,1)
    INDEX on &azd[i,2] TO xm
    xm=""
    nxh=1
    SCAN
        IF &azd[i,2]==xm
            REPLACE 班级数 WITH 班级数+1,班级名 WITH 班级名-","-jfb.bj,总分 WITH 总分+EVALUATE("jfb."+azd[i,1]),平均 WITH 总分/班级数 IN zjfb
        ELSE
            INSERT INTO zjfb VALUES (azd[i,2]+TRANSFORM(nxh),EVALUATE("jfb."+azd[i,2]),1,jfb.bj,EVALUATE("jfb."+azd[i,1]),EVALUATE("jfb."+azd[i,1]))
            nxh=nxh+1
        ENDIF
        xm=&azd[i,2]
    ENDSCAN
ENDFOR
SELECT zjfb
BROWSE

能说一下。每个命令行的解释吗?
2018-07-16 23:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
自己看帮助文件

坚守VFP最后的阵地
2018-07-16 23:49
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 
为什么插入一个字段后,提示数据类型不匹配。我想增加两列。

jfb2.rar (3.57 KB)


不好意思,请给个示范。
2018-07-16 23:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
回复 24楼 分号
你的代码是如何写的

坚守VFP最后的阵地
2018-07-16 23:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
看下ALTER TABLE – SQL 命令相关的帮助文件

坚守VFP最后的阵地
2018-07-16 23:59
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 
就是用21楼的类似的,想算出 ywkmjf 的所有的平均值,现在是增加了两列后,用老大的写的程序提示数据类型不匹配,肯定是 列数 指针不对。我查了半天帮助了,还是无法做到正常运行
2018-07-17 00:00
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 
您看一下数据表jfb2 。能汇总出来,ywkmjf,sxkmjf。。。。 就可以了。
2018-07-17 00:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
贴上代码看看

坚守VFP最后的阵地
2018-07-17 00:02
分号
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2006-12-4
收藏
得分:0 
程序代码:
Clear 
Close Databases all
*!* 数组变量设置
Local akm[7],bkm[7],x[16]
* 科目
akm[1]="Yw" && 语文
akm[2]="Sx" && 数学
akm[3]="Yy" && 英语
akm[4]="Wl"
akm[5]="Hx"
akm[6]="Sw"
akm[7]="Zf"

bkm[1]="Yw" && 语文
bkm[2]="Sx" && 数学
bkm[3]="Yy" && 英语
bkm[4]="Wl"
bkm[5]="Hx"
bkm[6]="Sw"
bkm[7]="Zf"


* 保存计数结果的变量
X=0

Use 第一学期期中积分1 In 0
SELECT MAX(VAL(bj)) FROM 第一学期期中积分1 INTO ARRAY amax

Select 第一学期期中积分1
DELETE FOR RECNO()>amax
PACK

SCAN for !Empty(bjs)
    Select 第一学期期中积分1
    For i=1 to Alen(akm,1)
        ckm=akm[i]+"kmjf"
        dkm=bkm[i]+"jfmc"

            Replace &ckm with 20 FOR &dkm=1 in 第一学期期中积分1
             Replace &ckm with 19 FOR &dkm=2 in 第一学期期中积分1
              Replace &ckm with 18 FOR &dkm=3 in 第一学期期中积分1
               Replace &ckm with 17 FOR &dkm=4 in 第一学期期中积分1
                Replace &ckm with 16 FOR &dkm=5 in 第一学期期中积分1
                 Replace &ckm with 15 FOR &dkm=6 in 第一学期期中积分1
                  Replace &ckm with 14 FOR &dkm=7 in 第一学期期中积分1
                   Replace &ckm with 13 FOR &dkm=8 in 第一学期期中积分1
                    Replace &ckm with 12 FOR &dkm=9 in 第一学期期中积分1
                     Replace &ckm with 11 FOR &dkm=10 in 第一学期期中积分1
                      Replace &ckm with 10 FOR &dkm=11 in 第一学期期中积分1
                       Replace &ckm with 9 FOR &dkm=12 in 第一学期期中积分1
                        Replace &ckm with 8 FOR &dkm=13 in 第一学期期中积分1
                         Replace &ckm with 7 FOR &dkm=14 in 第一学期期中积分1
                          Replace &ckm with 6 FOR &dkm=15 in 第一学期期中积分1
                           Replace &ckm with 5 FOR &dkm=16 in 第一学期期中积分1
                             Replace &ckm with 4 FOR &dkm=17 in 第一学期期中积分1
                               Replace &ckm with 3 FOR &dkm=18 in 第一学期期中积分1
                                 Replace &ckm with 2 FOR &dkm=19 in 第一学期期中积分1
                                   Replace &ckm with 1 FOR &dkm=20 in 第一学期期中积分1
                           
                          
        EndFor
        X=0

ENDSCAN
2018-07-17 00:03
快速回复:求分类汇总按照老师名字按照积分做出每个老师的总积分。
数据加载中...
 
   



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

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