| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3692 人关注过本帖
标题:求助学生分数段统计
取消只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
求助学生分数段统计
有数据库1原始学生成绩库(zcj.dbf),主要字段有czxx\czxxdm\bjdm\zf,分别为初中学校、初中学校代码、班级代码、总分等
导出一学校名称表(xxmc.dbf)主要字段有czxxdm\czxx\,分别为初中学校代码、初中学校;简单计算产生一分数段设置表(fsd.dbf)主要字段有N\F1\F2,分别为计数字段、低分字段、高分字段。按照分数段设置和学校名称表内容,统计出各学校相应分数段人数,一种是包含前一分数段,一种是不包含前一分数段
总成绩.rar (166.75 KB)

部分学习代码:
select distinct czxxdm  from zcj into table xxmc &&&去重取出所有czxxdm字段,???请教如何同时让xxmc表包含czxx和czxxdm两个字段
select min(zf) df, max(zf) gf from zcj into array fs
ndf=fs[1,1]
ngf=fs[1,2]
ngf=CEILING(ngf/10)*10
fsd=10 && 此处分数段可以更改
zds=CEILING((ngf-ndf)/fsd)+1 && 可设置的字段数,用函数取整
messagebox("当前字段数:"+transform(zds))
F11=ngf &&&&定义变量值
* 创建分数段表
create table fsd (n n(4), f1 n(4,2),f2 n(4,2)) &&&&创建表fsd三个数值型字段N\F1\F2
for i=1 to zds
    insert into fsd values (i,f11-fsd+0.1,f11)
    f11=f11-fsd
endfor
* 创建统计表tjb1一包含前一分数段
???
* 创建统计表tjb2二不包含前一分数段
???
实现下图效果统计数据库
 
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 学校 包含 字段 统计 分数 
2020-08-30 09:03
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 2楼 sdta
谢谢,我之前漏了逗号,后来是中文逗号,怪不得错误。另请教创建统计表tjb1一包含前一分数段代码,之前读过你的其他帖子,主要是命令太复杂,很多我没学过看不懂,请用简单prg指教。

[此贴子已经被作者于2020-8-30 10:54编辑过]

2020-08-30 10:51
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 4楼 sdta
我将SELECT * FROM fsd WHERE f1 > ndf - nfsd ORDER BY f1 DESC INTO table fsd和CREATE table tjb (&lcStr)中的CURSOR替换后
1.运行REPLACE (cx.cfsd) WITH cx.rs IN tjb
提示找不到变量“≥F0”
测试不包含时
2.运行 lcStr = lcStr + ", ≥F" + PADL(f1, 3, "0") + " n(4)"
提示缺少操作数
3.关于包含不包含我表达的不够清楚,我是想这样:
包含:意思比如实验中学F400(》=400分)统计出有23人,F390(》=390分)有66人,66是包含23的;
不包含:比如实验中学F400(》=400分)统计出有23人,F390(》=390分<400)有43人,43人不包含上一分数段的23人
2020-08-30 15:14
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 8楼 sdta
太谢谢了,学习了!
2020-08-30 17:00
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 10楼 wengjl
谢谢,学习了。提示找不到“fnam”变量,CREATE TABLE xxk  &bjg.语法错误

[此贴子已经被作者于2020-8-31 17:22编辑过]

2020-08-31 17:17
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 12楼 wengjl
Visual FoxPro 9.0
2020-09-01 08:31
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 17楼 wengjl
谢谢,学习了,下载测试了结果正确。另你这个我测试用了接近15秒。sdta的用了0.3秒,他的确实快。另外象stuff和art函数我平时没用过,正在学习。部分语句含义也正在学习。谢谢指导。
2020-09-01 14:48
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 19楼 sdta
确实是,你的代码简洁高效,我正在学习,对我来说两个难题,
一个是创建统计表结构,你巧妙用于lcstr+scan语句解决让我增长不上,
另一个是统计出相应分数段人数并写入我先搬来用了但是没掌握,请再指教说明下

SELECT czxx, "≥F" + TRANSFORM(fsd.f1) cfsd, COUNT(*) rs FROM zcj, fsd GROUP BY 1, 2 WHERE zf >= fsd.f1 AND zf < fsd.f2 INTO CURSOR cx
SET RELATION TO czxx INTO tjb
SCAN
    REPLACE (cx.cfsd) WITH cx.rs IN tjb
ENDSCAN
2020-09-01 14:55
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 23楼 wengjl
有道理,学习了。谢谢!
2020-09-15 14:54
快速回复:求助学生分数段统计
数据加载中...
 
   



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

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