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