ASP.NET 报表行转列有关问题
ASP.NET 报表行转列问题
最近在琢磨用微软自己的报表工作制作报表,小弟的源数据如下图所示:

参考了论坛了一位老大的文章RDLC 动态列,小弟想实现他文章中所提如下图所示的行转列效果:

但是小弟在Viual Studio 2013中按文章中所说的操作只能达到如下效果:

Visual Studio中的设计界面如下:

求大神指导(首次在论坛发帖求助,故结贴率为0,请大神们莫介意!)
------解决思路----------------------
http://blog.****.net/wangnaisheng/article/details/39371643
你这是列转行,汗
直接在sql文的时候修改,返回转换好的datatable就好了
------解决思路----------------------
直接在Sql里面写好,这类内容百度上很好找的
------解决思路----------------------
最近在琢磨用微软自己的报表工作制作报表,小弟的源数据如下图所示:
参考了论坛了一位老大的文章RDLC 动态列,小弟想实现他文章中所提如下图所示的行转列效果:
但是小弟在Viual Studio 2013中按文章中所说的操作只能达到如下效果:
Visual Studio中的设计界面如下:
求大神指导(首次在论坛发帖求助,故结贴率为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 行受影响)
*/