zjcxc(邹建) 请进,上次的问题!(行与列)
例如有一张成绩表如下:score
学号 班级 科目 成绩
821 软1 C语言 85
821 软1 DATABASE 95
821 软1 DELPHI 80
822 软1 C语言 81
822 软1 DATABASE 82
822 软1 DELPHI 83
823 软1 C语言 91
823 软1 DATABASE 92
823 软1 DELPHI 93
...
321 网1 VFO 85
321 网1 操作工 70
321 网1 C语言 84
321 网1 网页 97
这次是输入某个班的班名,出现这样的效果,例如是"软1",
select * from score where 班级='软1'
效果是:
学号 班级 科目 成绩
821 软1 C语言 85
821 软1 DATABASE 95
821 软1 DELPHI 80
822 软1 C语言 81
822 软1 DATABASE 82
822 软1 DELPHI 83
823 软1 C语言 91
823 软1 DATABASE 92
823 软1 DELPHI 93
现在我想得到这效果:
学号 班级 C语言 DATABASE DELPHI
821 软1 85 95 80
822 软1 81 82 83
823 软1 91 92 93
你写的代码是:
--查询的存储过程
create proc p_qry
@班级 varchar(10)
as
declare @s varchar(8000)
set @s=''
select @s=@s+',['+科目+']=sum(case 科目 when '''+科目+''' then 成绩 else 0 end)'
from score where 班级=@班级
group by 科目
exec('select 学号,班级'+@s+' from score where 班级='''+@班级+''' group by 学号,班级')
go
现在的问题是我这张成绩表是不定的,有score03_04,score04_04,所以我想把score
做为一个输入变量,@score,这个时候代码要怎么改.就是from score where 这里的
score要改为变量@score来代替!