交叉表或行转列的优化问题
declare @sql varchar(8000)
set @sql = 'select fw'
select @sql = @sql + ',sum(case right((convert(varchar(10),tday,112)),2) when '''+
right((convert(varchar(10),tday,112)),2)+''' then cl end) ['+right((convert(varchar(10),tday,112)),2)+']' from #t_mday
select @sql = @sql+' from #t_mday group by fw'
print(@sql)
其中tday是个日期型,得出的结果(如果有的话):
fw,1,2,3,4,5,6,7,8,9,10,11....直到月底(标题)
a ....
------------问题是,结果字符串不够长,其实查询的tday实际列只有1-11而已...
为什么会不够长呢?
请各位大侠指教,谢谢!