交叉报表
表结构: name(char),mony(float),date(char)
现在要统计每个人每月的消费次数
查询结果如:name, 1月,2月,3月.......12月消费次数
张三, 9,0..................
李四,0,2,3,4..............
高手们能否帮我看看...谢谢
问题点数:20、回复次数:3Top
1 楼scmail81(琳·风の狼(修罗))回复于 2006-03-09 10:28:09 得分 20
declare @T_SQL varchar(8000)
select @T_SQL=@T_SQL + 'sum(case when date=''' + date + ''' then mony else 0 end) as ''' + date + ''',' from (select distinct date from 表 ) T
set @T_SQL='select name,' + left(@T_SQL,len(@T_SQL)-1) + ' from 表 group by name'Top
2 楼scmail81(琳·风の狼(修罗))回复于 2006-03-09 10:29:14 得分 0
限于 date(char) 存储数据的格式为
1月
2月
3月
...Top
3 楼scmail81(琳·风の狼(修罗))回复于 2006-03-09 10:30:19 得分 0
declare @T_SQL varchar(8000)
select @T_SQL=@T_SQL + ' sum(case when date=''' + date + ''' then mony else 0 end) as ''' + date + ''',' from (select distinct date from 表 ) T
set @T_SQL='select name,' + left(@T_SQL,len(@T_SQL)-1) + ' from 表 group by name'Top




