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 [涛]$姓名
图片附件: 游客没有浏览图片的权限,请
登录 或
注册