注册 登录
编程论坛 SQL Server论坛

[求助]这个如何改

wsq1168 发布于 2007-10-20 21:48, 705 次点击

假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

create table CJ
(
name varchar(6) not null,
subject char(4) not null,
result int not null
)
insert into CJ values('张三','语文','80')
insert into CJ values('张三','数学','90')
insert into CJ values('张三','物理','85')
insert into CJ values('李四','语文','85')
insert into CJ values('李四','数学','92')
insert into CJ values('李四','物理','82')

4 回复
#2
Wǒの小小菜鸟2007-10-20 21:51
你的意思是要建个新表还是什么意思?
#3
wsq11682007-10-20 21:56
回复:(wsq1168)[求助]这个如何改
通过上面的表查询出下面表的样式
#4
purana2007-10-20 22:03

[CODE]use tempdb
go
create table CJ
(
name varchar(6) not null,
subject char(4) not null,
result int not null
)
insert into CJ values('张三','语文','80')
insert into CJ values('张三','数学','90')
insert into CJ values('张三','物理','85')
insert into CJ values('李四','语文','85')
insert into CJ values('李四','数学','92')
insert into CJ values('李四','物理','82')
declare @sql varchar(500)
set @sql='select name'
select @sql=@sql+',max(case when subject='''+subject+''' then result else 0 end) ['+subject+']'
from (select distinct subject from CJ) A
set @sql=@sql+' from CJ group by name'
exec (@sql)
drop table CJ[/CODE]


#5
wsq11682007-10-20 22:17
回复:(purana)[CODE]use tempdbgocreate table CJ(...
能不能解释一下
1