CREATE TABLE tb_student (
[id] [nvarchar] (20) NOT NULL ,
[name] [nvarchar] (50) NULL ,
) ON [PRIMARY]
GO
CREATE TABLE tb_class (
[class_id] [nvarchar] (20) NOT NULL ,
[class_name] [nvarchar] (50) NULL ,
) ON [PRIMARY]
GO CREATE TABLE [tb_Source] (
[id] [nvarchar] (20) NOT NULL ,
[class_id] [nvarchar] (20) NOT NULL ,
[source] [numeric](18, 0) NULL
) ON [PRIMARY]
GO ------------------------------- declare @sql varchar(8000) -- set @sql = 'select name,' set @sql = 'select '
select @sql = @sql + 'sum(case when [class_id] = '''+a.class_id+'''
then source else 0 end) as '''+a.class_name+''','
from (select class_id ,class_name from tb_class ) as a
select @sql = left(@sql,len(@sql)-1) + ', student.name AS ''姓名'' from tb_Source as source
inner join tb_student as student on source.id = student.id
group by student.name '
print @sql
exec(@sql)
[id] [nvarchar] (20) NOT NULL ,
[name] [nvarchar] (50) NULL ,
) ON [PRIMARY]
GO
CREATE TABLE tb_class (
[class_id] [nvarchar] (20) NOT NULL ,
[class_name] [nvarchar] (50) NULL ,
) ON [PRIMARY]
GO CREATE TABLE [tb_Source] (
[id] [nvarchar] (20) NOT NULL ,
[class_id] [nvarchar] (20) NOT NULL ,
[source] [numeric](18, 0) NULL
) ON [PRIMARY]
GO ------------------------------- declare @sql varchar(8000) -- set @sql = 'select name,' set @sql = 'select '
select @sql = @sql + 'sum(case when [class_id] = '''+a.class_id+'''
then source else 0 end) as '''+a.class_name+''','
from (select class_id ,class_name from tb_class ) as a
select @sql = left(@sql,len(@sql)-1) + ', student.name AS ''姓名'' from tb_Source as source
inner join tb_student as student on source.id = student.id
group by student.name '
print @sql
exec(@sql)
帮定
自己修改名字
或者改sql语句
把你的名字as了
如果项目过大
建议在系统管理
遍历Gridview的列头
在数据库里创建代码表进行统一修改