VFP中如何将表的中某一字段相同属性值合并,其他字段属性保留生成不同结构的新表。急急急!

即将表A变成表B表A:姓名序号科目王1数学王2语文李3英语李4化学杨5物理表B:姓名科目1科目2科目3序号1序号2序号3序号4王数学语文空12空空李英语化学空34空空杨物... 即将表A变成表B
表A:
姓名 序号 科目
王 1 数学
王 2 语文
李 3 英语
李 4 化学
杨 5 物理
表B:
姓名 科目1 科目2 科目 3 序号1 序号2 序号3 序号4
王 数学 语文 空 1 2 空 空
李 英语 化学 空 3 4 空 空
杨 物理 空 空 5 空 空 空
展开
 我来答
Xing尘
推荐于2017-09-26 · TA获得超过117个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:150万
展开全部

你这格式好像不对

如果是我下面两图的情况,那么,代码送上

代码如下:

Create Cursor lsb (dw c(6),dm c(4),sj N(5))
Insert Into lsb Values ([学生A],[语文],100)
Insert Into lsb Values ([学生A],[数学],200)
Insert Into lsb Values ([学生A],[英语],300)
Insert Into lsb Values ([学生A],[物理],400)
Insert Into lsb Values ([学生A],[化学],500)
Insert Into lsb Values ([学生B],[语文],600)
Insert Into lsb Values ([学生B],[数学],700)
Insert Into lsb Values ([学生B],[英语],800)
Insert Into lsb Values ([学生B],[物理],900)
Insert Into lsb Values ([学生B],[化学],970)
brow

Select dw,Sum(Iif(dm=[语文],sj,0)) As 语文,Sum(Iif(dm=[数学],sj,0)) As 数学,;
 SUM(Iif(dm=[英语],sj,0)) As 英语,Sum(Iif(dm=[物理],sj,0)) As 物理,;
 SUM(Iif(dm=[化学],sj,0)) As 化学 From lsb ;
 GROUP By dw

追问

还是不能解决我的问题啊,因为你这里DM这个字段是有相同属性的,如果不同属性那么就不能用属性值作为字段名而要用新的字段名代替如序号1,序号2,科目1,科目2,科目3,我的数据量很大的,只能按照重复名字分别编号,解决下面这个问题才可以。即给A表的重复姓名按顺序编号生成B表。求代码

A表:                                             B表:

追答
你又是科目又是序号,你用EXCEL表格的形式描述清楚点吧,我上面的代码你删一行记录,比如我里面的学生A的任一科应该也能返回,只是那科是空值
Fox123456
2014-12-31 · TA获得超过174个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:254万
展开全部
这么复杂最简单的法子就是编程解决,2个嵌套循环就解决啦
更多追问追答
追问
怎么写呢。。。
追答
create table 表B(姓名 c(8),科目1 c(10),科目2 c(10),序号c(5),序号2 c(5),序号3 c(5),序号4 c(5))
use 表A in 0
select 表A
index on 姓名 to a1
do while !eof()
xm = 姓名
select 表B
append blank
replace 姓名 with 表A.姓名
select 表A
i = 1
do while !eof() and 姓名=xm
j=alltrim(str(i))
select 表B
replace 科目&j with 表A.科目,序号&j with 表A.序号
select 表A
skip
i = i+1
enddo
enddo
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式