主题:请教有关数据存取的问题~~~~~(已解决)
coffeenight
[专家分:230] 发布于 2008-09-23 10:34:00
遇到一个问题,不知道解决方法,来向大家请教,谢谢您的帮助!
是这样,压缩包里有两个表aa,bb
aa 表字段有 导师姓名,科目名称等
例如: 导师姓名 科目名称
不区分导师组一 语文
不区分导师组一 数学
不区分导师组一 英语
不区分导师组二 化学
不区分导师组二 政治
bb 表有字段 导师姓名,备注
例如: 导师姓名 备注
不区分导师组一 包含以下导师:张三、李四、王五
不区分导师组二 包含以下导师:麻子、孙二
现在我需要将aa 表中的不区分导师组的全部代换成bb 表中的导师姓名,并把科目相应添加
就像下面这样的结果
导师姓名 科目名称
张三 语文
张三 数学
张三 英语
李四 语文
李四 数学
李四 英语
王五 语文
。。。。。。
。。。。。。
孙二 化学
孙二 政治
期待您的回复~~~
最后更新于:2008-09-26 08:50:00
回复列表 (共14个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-09-23 13:32:00
结果是这样吗?
[img]http://p12.freep.cn/p.aspx?u=v20_p12_p_0809231327118320_0.jpg[/img]
板凳
coffeenight [专家分:230] 发布于 2008-09-23 15:25:00
谢谢cbl518老师!
初步判断:是的。[em4]
3 楼
coffeenight [专家分:230] 发布于 2008-09-24 16:23:00
急啊~~~~没有人可以给我点提示吗??
怎么提取一个BZ字段中的各位老师的名字呢?
4 楼
cbl518 [专家分:57140] 发布于 2008-09-25 07:21:00
CREATE CURSOR 新表(Dsxm C(8),Yjfxmc C(28),kmm C(20))
USE aa IN 0
USE bb IN 0
SELECT bb
SCAN
SELECT aa
SCAN FOR aa.Dsxm=bb.Dsxm
FOR i=2 TO ALINES(ADsName, bb.Bz,1+4,":","、","。")
INSERT INTO 新表 VALUES (ADsName[i],aa.Yjfxmc,aa.Kskmmc)
ENDFOR
ENDSCAN
SELECT bb
ENDSCAN
SELECT * FROM 新表 ORDER BY Dsxm INTO TABLE 结果表
5 楼
cbl518 [专家分:57140] 发布于 2008-09-25 07:23:00
以上的结果是你手需要的吗?
我认为:
还是保持源文件的结构比较好点。
6 楼
coffeenight [专家分:230] 发布于 2008-09-25 10:53:00
谢谢!
请问 下面这句
FOR i=2 TO ALINES(ADsName, bb.Bz,1+4,":","、","。")
中的 1+4 是什么意思???
运行提示程序错误:函数参数的值、类型或数目无效。
我用的是VFP6.0
7 楼
cbl518 [专家分:57140] 发布于 2008-09-25 11:31:00
怎么还用 vfp 6 呢?
vfp 6 是 wind95 环境下运行的,
有很多的命令在 xp 下运行都会有麻烦的!
8 楼
cbl518 [专家分:57140] 发布于 2008-09-25 11:39:00
FOR i=2 TO ALINES(ADsName, bb.Bz,1+4,":","、","。")
改为:
FOR i=2 TO ALINES(ADsName, CHRTRANC(bb.Bz,":、。" ,chr(13)+chr(13)+chr(13)), .T.)
9 楼
cbl518 [专家分:57140] 发布于 2008-09-25 11:46:00
试试看吧!
10 楼
coffeenight [专家分:230] 发布于 2008-09-25 15:12:00
谢谢~~
之前一直没用9.0,是对它的 group by 子句很不适应,所以一直用7.0和6.0
程序现在9.0运行正常,返回 2819条纪录,只是很奇怪,有25条纪录DSXM字段为空
程序改成
FOR i=2 TO ALINES(ADsName, CHRTRANC(bb.Bz,":、。" ,chr(13)+chr(13)+chr(13)), .T.)
可以在6.0 正常运行,返回 3163条纪录,有369条纪录DSXM字段为空
我来回复