当前位置: 代码迷 >> .NET报表 >> 水晶报表中纵向数据转变为横向数据的困惑!解决办法
  详细解决方案

水晶报表中纵向数据转变为横向数据的困惑!解决办法

热度:4999   发布时间:2013-02-25 00:00:00.0
水晶报表中纵向数据转变为横向数据的困惑!
请问:下面的数据怎样转变啊!先谢谢啦!
数据库中查询出的数据是纵向的数据:
姓名       数量       月份
张小       123             2
张小       254             3
张小       452             4
张小       245             5
张小       521             6
.
.
.
李四       456             2
李四       855             3
李四       456             4
李四       456             5
李四       456             6

怎样可以转变成为横向的数据:

2月         3月           4月           5月         6月
张小           123         254           452           245             521
张三           147         254           235           258             256    
李四 456         855           456           456             456





------解决方案--------------------------------------------------------
用水晶报表中的交叉,不过效果不好控制,建议在数据库中用Case When的方法处理成你一个这样的表再读出来:
Select [name],
sum((case when [month]=2 then [count] end) as '2月 '),
sum((case when [month]=3 then [count] end) as '3月 '),
...
from table1 where
...
group by [name]
如果你的报表是一个rpt文件,这部分你可以直接在在Crystal report的数据源中Command中写就可以了。
------解决方案--------------------------------------------------------
建议先写一个存储过程,然后建立一个临时表,然后把数据都列出来,然后显示出来
------解决方案--------------------------------------------------------
同意楼上的观点,学习中……
  相关解决方案