如何取动态的日期列名?
我要查询最近12个月的数据,列名也要动态显示,比如我在今天查询,字段名要分别为:2013年1月、2013年2年、……、2013年12月。
当我在下个月再查询此报表的时候,字段名要分别为:2013年2月、2013年3年、……、2014年1月。
这个动态的列名要怎样实现?
[解决办法]
declare @sql nvarchar(4000)
set @sql = ''
select @sql = @sql + ',sum(case when datediff(month,_date,getdate())='
+ cast(number+1 as varchar)
+ ' then 销售金额 else 0 end) as ['
+ datename(year,DATEADD(MONTH,number,GETDATE()))+'年'
+ datename(month,DATEADD(MONTH,number,GETDATE()))+'月]'
from master..spt_values
where type ='P' and number <=11
select @sql = 'select 客户'+ @sql +
' from 表 where datediff(month,_date,getdate()) between 1 and 12
group by 客户'
select @sql