日期:2014-05-20  浏览次数:20897 次

水晶报表中纵向数据转变为横向数据的困惑!
请问:下面的数据怎样转变啊!先谢谢啦!
数据库中查询出的数据是纵向的数据:
姓名       数量       月份
张小       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中写就可以了。
------解决方案--------------------
建议先写一个存储过程,然后建立一个临时表,然后把数据都列出来,然后显示出来
------解决方案--------------------
同意楼上的观点,学习中……