表结构问题!在线等!高分!
现有一表内容如下
xh xm kc cj
0001 小明 语文 66
0001 小明 数学 85
0001 小明 英文 100
0002 里司 语文 55
0002 里司 数学 100
0002 里司 英文 80
…… …… …………
怎样把该表转化为如下格式:
学号 姓名 语文 数学 英文
0001 小明 66 85 100
0002 里司 55 100 80
…… …… …………
转化时还需注意,上面只是列举了3门成绩
如果事前不能确定该表有几门成绩该如何转化?
问题点数:0、回复次数:8Top
1 楼luke5678()回复于 2004-12-02 08:58:32 得分 0
declare @sql varchar(8000)
set @sql = 'select xh,xm'
select @sql = @sql + ',sum(case kc when '''+kc+''' then cj end) ['+kc+']'
from (select distinct kc from test) as a
select @sql = @sql+' from test group by xm'
exec(@sql)
Top
2 楼majia_fk(fffff)回复于 2004-12-02 09:01:01 得分 0
luke5678(奇异)你能说的详细点吗?
我用的是ado+accessTop
3 楼qizhanfeng(glacier)回复于 2004-12-02 09:05:15 得分 0
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',78)
select * from test
declare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',max(case km when '''+km+''' then cj end )['+km+']'
from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
print(@sql)
exec(@sql)Top
4 楼qizhanfeng(glacier)回复于 2004-12-02 09:05:53 得分 0
不好意思没看到
accessTop
5 楼majia_fk(fffff)回复于 2004-12-02 09:11:25 得分 0
没关系,想办法解决了就行啊
该怎么做好呢?Top
6 楼luke5678()回复于 2004-12-02 09:14:27 得分 0
//不好意识,有个小小错误~~
--测试
Create table test (xh char(10),xm char(10),kc char(10),cj int)
go
insert test values('0001','小明','语文',66)
insert test values('0001','小明','数学',85)
insert test values('0001','小明','英语',100)
insert test values('0002','李四','语文',55)
insert test values('0002','李四','数学',100)
insert test values('0002','李四','英语',80)
-----------------------------------------------------------------
declare @sql varchar(8000)
set @sql = 'select xh,xm'
select @sql = @sql + ',sum(case kc when '''+kc+''' then cj end) ['+kc+']'
from (select distinct kc from test) as a
select @sql = @sql+' from test group by xh,xm order by xh'
exec(@sql)
----------------------------------------------------------------
--结果
xh xm 数学 英语 语文
0001 小明 85 100 66
0002 李四 100 80 55
Top
7 楼luke5678()回复于 2004-12-02 09:15:25 得分 0
倒!!!!!
机子上没装access
一会帮你去试试Top
8 楼majia_fk(fffff)回复于 2004-12-02 09:19:20 得分 0
你写的sql语句可以在adoquery中运行吗?
Top




