ASP.NET 报表行转列有关问题

ASP.NET 报表行转列问题
本帖最后由 lq3399 于 2014-10-26 11:59:25 编辑
最近在琢磨用微软自己的报表工作制作报表,小弟的源数据如下图所示:
ASP.NET 报表行转列有关问题
参考了论坛了一位老大的文章RDLC 动态列,小弟想实现他文章中所提如下图所示的行转列效果:
ASP.NET 报表行转列有关问题
但是小弟在Viual Studio 2013中按文章中所说的操作只能达到如下效果:
ASP.NET 报表行转列有关问题
Visual Studio中的设计界面如下:
ASP.NET 报表行转列有关问题
求大神指导(首次在论坛发帖求助,故结贴率为0,请大神们莫介意!)

------解决思路----------------------
http://blog.****.net/wangnaisheng/article/details/39371643

你这是列转行,汗

直接在sql文的时候修改,返回转换好的datatable就好了

------解决思路----------------------
直接在Sql里面写好,这类内容百度上很好找的
------解决思路----------------------


declare @t table( 学号 varchar(20),姓名 varchar(20),科目 varchar(20),分数 int)
insert into @t (学号,姓名,科目,分数)
select '1111','张三','英语',89
union all
select '2222','李四','语文',78
union all
select '1111','张三','数学',98
union all
select '1111','张三','物理',91
union all
select '2222','李四','化学',82
union all
select '1111','张三','化学',45
union all
select '2222','李四','英语',60

select ROW_NUMBER() over(order by 学号) as 序号,
姓名,
[语文]=isnull([语文],0),[数学]=isnull([数学],0),[英语]=isnull([英语],0),[物理]=isnull([物理],0),[化学]=isnull([化学],0)
 from @t 
pivot 
(sum(分数)
 for 科目  in ([语文],[数学],[英语],[物理],[化学]))
 as pt

/*
序号                   姓名                   语文          数学          英语          物理          化学
-------------------- -------------------- ----------- ----------- ----------- ----------- -----------
1                    张三                   0           98          89          91          45
2                    李四                   78          0           60          0           82

(2 行受影响)

*/