| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9146 人关注过本帖, 1 人收藏
标题:求助按科目成绩等级录取学生
取消只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 20楼 xuminxz
差不多吧,这一步意思就是分别将报指标生和统招生符合等级条件的挑出来,比如报A学校指标生5403人(coun for zy2=='31')将符合等级条件的人挑出来,完成后结果是4348人(coun for zbs='31' and zy2=='31')
2019-06-20 10:24
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 11楼 sdta
如何实现将ALLTRIM(wldj - hxdj -swdj - zzdj - lsdj - dldj)提取到的两个或者更多个排序并保存?CCCCDC变成CCCCCD,BABBCB变成ABBBBC
2019-06-20 15:22
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 24楼 sdta
看是真看了,代码中前面基本看懂了,平时从没用过这样的函数和命令,没看懂等级排序这一关键部分
2019-06-20 20:43
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 26楼 sdta
如果能将科目等级组合提取后并排序存放,就可以用它直接和要求比较小于等于为真,大于为否。可是苦于只会简单用alltrim提取,不会排序。所以就绕路用的排除法(具体如下,),提前将各种等级提取出来,为此并且增加了许多辅助字段。虽能解决但觉得有点绕,尤其统招生2B2C2D(BBCCDD)的排除怕有落漏,最好的方法还是你的提取排序后比较大小,我们的想法总感觉不够数学和逻辑,想学习你的等级排序,可是象你11行就解决的,处于知识所限,平时没用也没看懂(FUNCTION \LOCAL \ASORT\ ALEN意思作用没看懂,见笑了,请指教,能否帮编辑实现先将提取的等级组合排序后存放,然后我直接比较大小用repl替换即可)

&&&排除法指标生
repl all zbs with ''
&&提取A指标生(物理、化学1B1C以上;思想品德、历史、地理、生物1B3C以上;体育与健康D以上)
repl  zbs with '31' for zy2=='31' and 科目合计=7 and (OCCURS('D',理化)=0 and OCCURS('E',理化)=0 and OCCURS('C',理化)<=1) and (OCCURS('D',政史地生)=0 and OCCURS('E',政史地生)=0 and OCCURS('C',政史地生)<=3) and OCCURS('E',tydj)=0

&&提取B指标生,5C2D以上
repl  zbs with '32' for E=0 and D<=2  and zy2=='32' and 科目合计=7

&&提取C指标生,5C2D以上
repl  zbs with '33' for E=0 and D<=2 and zy2=='33' and 科目合计=7

&&提D指标生,物理、化学、生物、地理3C1D以上,政史体2C1D以上
repl zbs with '34' for OCCURS('E',理化生地)=0 and OCCURS('D',理化生地)<=1 and OCCURS('D',政史体)<=1 and OCCURS('E',政史体)=0 and zy2=='34' and 科目合计=7

&&排除法统招生把不符合条件的考生作出标记40
repl all tzs with ''
*repl  tzs with '40' for zy3=='31' and ((OCCURS('E',六科)<>0 or OCCURS('D',六科)>2) or (OCCURS('C',六科)=4 and OCCURS('D',六科)=2)  or (OCCURS('C',六科)=3 and OCCURS('D',六科)=2) or (OCCURS('C',六科)=4 and OCCURS('D',六科)=1) or (OCCURS('C',六科)=5 and OCCURS('D',六科)=1) or  (OCCURS('C',六科)>=5 and OCCURS('D',六科)=0))
repl  tzs with '40' for zy3=='31' and ((OCCURS('E',六科)<>0 or OCCURS('D',六科)>2) or (OCCURS('C',六科)=3 and OCCURS('D',六科)=2) or (OCCURS('C',六科)=4 and OCCURS('D',六科)=2) or (OCCURS('C',六科)=4 and OCCURS('D',六科)=1) or  (OCCURS('C',六科)>=5 and OCCURS('D',六科)<=1))

&&剩余的就是符合等级要求的用31标记
repl tzs with '31' for zy3=='31' and tzs<>'40'
repl tzs with '32' for e<=1 and zy3=='32'
repl tzs with '33' for e<=1 and zy3=='33'
repl tzs with '34' for e<=1 and zy3=='34'
2019-06-20 21:21
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 26楼 sdta
请勿见笑,没系统学习过计算机,就是早年接触过foxbase,比较喜欢数据库,但基础比较薄弱,平时用的命令也比较简单,向你等级排序中的第一次见。这样想过用数学的办法比较最为准确,可是不会,终于找着你这个高手了,请多指教。
2019-06-20 21:42
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 29楼 sdta
还是想麻烦你,我想有这个目的的一段程序,第一将各种组合的等级提取出来,第二将提取出来等级排序后写入记录,方便查看和比较。谢谢
对你来讲不难,对我来讲真的困扰好长时间了,请指教。

[此贴子已经被作者于2019-6-20 22:04编辑过]

2019-06-20 21:58
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 31楼 sdta
非常感谢,刚刚测试完全实现目的,谢谢指教!
2019-06-20 22:34
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 31楼 sdta
又有新的问题,因为A<B<C<D<E,所以导致ACCCCD\ACDDDD等不符合2B2C2D(BBCCDD)的情况也被计算为合格了
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-06-21 11:30
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 34楼 sdta
我觉得2B2C2D组合(BBCCDD)是底线,D最多有两个,但不能说C最多有两个,因为(BBCCCC)组合虽有4个C,但是底线符合要求,排序之后再逐个对位比较才是最安全的比如说六个位置分别为A1\A2\A3\A4\A5\A6,需要A1<=B,A2<=B,A3<=C,A4<=C,A5<=D,A6<=D,才可以
我这样试了一下,逐个位置进行比较再替换,就是有点长。
REPLACE ALL tzs1 WITH '31' FOR substr(六科,1,1)<='B' AND substr(六科,2,1)<='B' AND substr(六科,3,1)<='C' AND substr(六科,4,1)<='C'AND substr(六科,5,1)<='D'AND substr(六科,6,1)<='D' AND ZY3='31'

再请教如何将临时表tj中的字段没有的六科、七科、和已经有的,写会原数据表

[此贴子已经被作者于2019-6-21 16:06编辑过]

2019-06-21 14:38
chychychy
Rank: 2
等 级:论坛游民
帖 子:229
专家分:94
注 册:2015-4-18
收藏
得分:0 
回复 37楼 sdta
我觉得,逐个对位比较很重要,写回数据上为了下发是方便查看数据
2019-06-24 10:13
快速回复:求助按科目成绩等级录取学生
数据加载中...
 
   



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

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