新手求助:编程实现统计问题
目的:分地市分科类统计“总成绩”表中各个分数的人数,并将其放入表A中已知:总成绩表(zkzh,zcj),其中“zkzh”表示准考证号、“zcj”表示总成绩
地市代码表(dsdm,dsmc),其中“dsdm”表示地市代码、“dsmc”表示地市名称
科类代码表(kldm,klmc),其中“kldm”表示科类代码,“klmc”表示科类名称
解题思路:建立地市代码表和科类代码表作为循环条件,逐步求解后将结果合并
存在问题:现编程序如下,但是无法运行。刚开始学习vfp,不知如何修改……
求助:循环变量如何设置?如何把循环后的变量设为字段?
—————————————
set talk off
close all
clear
sele 1
sele distinct zcj from 总成绩表 into table A &&从总成绩表中取出zcj的唯一值放入表A中
sele 2
use dsdmb &&打开地市代码表
sele 3
use kldmb &&打开科类代码表
sele 2
go top
do while .not. eof()
ds=dsdm &&从地市代码表中取出字段dsdm的值赋给变量ds
sele 3
do while .not. eof()
kl=kldm &&从科类代码表中取出字段kldm的值赋给变量kl
zdm=ds+kl &&定义一个新变量zdm,它的值等于ds+kl,此处应是字符型变量
select count(zcj)as rs&zdm,zcj from 总成绩 where subs(zkzh,1,2)=ds and subs(zkzh,5,1)=kl into cursor B &&计算总成绩表中每个分数的人数,并将人数放到临时表B的“rs+zdm”字段中;此处的字段“rs+zdm”应该是可变的
select A.zcj,B.rs&zdm from A left outer join B on A.zcj=B.zcj into cursor temptj && 将表A和表B连接起来并将结果放到临时表temptj中
select zcj,rs&zdm from temptj into table A &&用临时表temptj 替换表A
sele 3
skip
enddo
sele 2
skip
enddo
set talk on
———————————
热盼达人帮助,此处先行谢过!