标题:求分类汇总按照老师名字按照积分做出每个老师的总积分。
取消只看楼主
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分: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
等 级:新手上路
帖 子:154
专家分: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
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
为什么插入一个字段后,提示数据类型不匹配。我想增加两列。

jfb2.rar (3.57 KB)


不好意思,请给个示范。
2018-07-16 23:54
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
就是用21楼的类似的,想算出 ywkmjf 的所有的平均值,现在是增加了两列后,用老大的写的程序提示数据类型不匹配,肯定是 列数 指针不对。我查了半天帮助了,还是无法做到正常运行
2018-07-17 00:00
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
您看一下数据表jfb2 。能汇总出来,ywkmjf,sxkmjf。。。。 就可以了。
2018-07-17 00:02
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分: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
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
这是20个的倒数赋值,后面还有16个数的倒数赋值。出来科目积分,在算出每位老师的所带班级,科目,总科目积分,和平均科目积分。+上名次。就完美了。
2018-07-17 00:05
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分: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

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-17 00:06
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
后面还需要加上名次。这个我可以做。
2018-07-17 00:07
分号
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2006-12-4
得分:0 
积分计算.rar (4.57 KB)
2018-07-17 00:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488604-1-1.html




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

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