| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:求助:一个大难题和三个小问题
只看楼主 加入收藏
chuxue
Rank: 1
等 级:新手上路
帖 子:78
专家分:4
注 册:2008-1-22
结帖率:64.29%
收藏
已结贴  问题点数:10 回复次数:3 
求助:一个大难题和三个小问题
您好,谢谢您的热心,不管成功与否都要谢谢您的热心。先看问题

表1是原先的成绩,表2是经过检查发现错误修改后的成绩(以表2 成绩为准)。用个什么命令可以把表2那些成绩被修改的学生找出来?

答案是:11号李驾  语文改成了A 科学改成了B

15号国芳    音乐改成了A

22号高涛   语文改成了B  数学改成了C  社会改成了D

24号韩红  科学,社会,美术,音乐全部改成了B   



还有3个小问题:

第一个问题是用个什么命令可以把60个学生,在“学号”的这个字段里从1开始排列,即1,2,3,4,5,6,.......59,60

第二个问题我想把表里的科目A B C D改成相应的优 良 中 差  即A改成优  B改成良C改成中D差


第三个问题是我想把姓名字段里的带“涛”字的人名摘选出来

您看着三个问题各用个什么命令解决?

我这里有附件,包括表1表2     
1.rar (1.26 KB)


[ 本帖最后由 chuxue 于 2009-9-17 18:03 编辑 ]
搜索更多相关主题的帖子: 难题 
2009-09-17 17:59
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:10 
修改后的内容不止楼主所说的4条记录。
select a.*;
 from 2 a;
 where a.考号+a.语文+a.数学+a.科学+a.社会+a.英语+a.美术+a.音乐 not in;
 (select b.考号+b.语文+b.数学+b.科学+b.社会+b.英语+b.美术+b.音乐;
    from 1 b)

学号的修改:
replace all 学号 with recno()

修改成绩表示:
replace all 语文 with chrtranc(upper(语文),'ABCD','优良中差'),;
            数学 with chrtranc(upper(数学),'ABCD','优良中差'),;
            ...——其他科目

挑选记录:
select * from 2 where 姓名 like '%涛%'

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-09-17 23:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
3个小问题的解决方法
-1-建议不要改动数据表的原始数据,在临时表中给予解决的方法
-2-同样的理由

说明:数据表名称最好不要用数字开头,1.DBF及2.DBF分别改名为CJ1.DBF及CJ2.DBF。由于两个数据表中的课程字段的宽度都为1,下面的代码中先修改课程字段的宽度,为后面的课程成绩[ABCD]改为对应的[优良中差]做准备

* 为了能正确比较两表中成绩修改前后的变化,特创建一个临时表[对比表]
CREATE CURSOR DBB (考号 N(4),姓名 C(6),字段名 C(10),改前 C(2),改后 C(2))
*--------*
程序代码:
SELECT RECNO() 考号,姓名,CHRTRANC(CAST(语文 AS C(2)),[ABCD],[优良中差]) 语文,;
CHRTRANC(CAST(数学 AS C(2)),[ABCD],[优良中差]) 数学,CHRTRANC(CAST(科学 AS C(2)),[ABCD],[优良中差]) 科学,;
CHRTRANC(CAST(社会 AS C(2)),[ABCD],[优良中差]) 社会,CHRTRANC(CAST(英语 AS C(2)),[ABCD],[优良中差]) 英语,;
CHRTRANC(CAST(美术 AS C(2)),[ABCD],[优良中差]) 美术,CHRTRANC(CAST(音乐 AS C(2)),[ABCD],[优良中差]) 音乐 FROM CJ1 INTO CURSOR CJ11

SELECT RECNO() 考号,姓名,CHRTRANC(CAST(语文 AS C(2)),[ABCD],[优良中差]) 语文,;
CHRTRANC(CAST(数学 AS C(2)),[ABCD],[优良中差]) 数学,CHRTRANC(CAST(科学 AS C(2)),[ABCD],[优良中差]) 科学,;
CHRTRANC(CAST(社会 AS C(2)),[ABCD],[优良中差]) 社会,CHRTRANC(CAST(英语 AS C(2)),[ABCD],[优良中差]) 英语,;
CHRTRANC(CAST(美术 AS C(2)),[ABCD],[优良中差]) 美术,CHRTRANC(CAST(音乐 AS C(2)),[ABCD],[优良中差]) 音乐 FROM CJ2 INTO CURSOR CJ22
NZDS=AFIELDS(AZDM,[CJ22])

FOR I=3 TO NZDS
    STORE "SELECT 考号,姓名 " TO ASQLA,ASQLB
    ASQLA=ASQLA+",'"+AZDM(I,1)+"' as zd,"+AZDM(I,1)+" FROM CJ11 INTO CURSOR CJ111"
    EXECSCRIPT(ASQLA)
    ASQLB=ASQLB+",'"+AZDM(I,1)+"' as zd,"+AZDM(I,1)+" FROM CJ22 INTO CURSOR CJ222"
    EXECSCRIPT(ASQLB)
    ASQLC="INSERT INTO DBB SELECT A.考号,A.姓名,A.ZD,A."+AZDM(I,1)+",b."+AZDM(I,1)+" FROM CJ111 a LEFT JOIN CJ222 b ON a.考号=b.考号 WHERE A."+AZDM(I,1)+"<>B."+AZDM(I,1)
    EXECSCRIPT(ASQLC)
ENDFOR 

*-问题1-的结果
SELECT * FROM DBB ORDER BY 1

图片附件: 游客没有浏览图片的权限,请 登录注册

*-问题3-的代码
SELECT * FROM CJ1 WHERE [涛]$姓名
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2014-03-23 21:43
chychychy
Rank: 2
等 级:论坛游民
帖 子:293
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 3楼 sdta
留个脚印,学习CHRTRANC和cast函数等
2024-08-06 16:06
快速回复:求助:一个大难题和三个小问题
数据加载中...
 
   



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

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