DECLARE @M VARCHAR(2) SET @M=DATENAME(MM,GETDATE())EXEC('SELECT MON'+@M+' FROM TB')
我用convert,substring等等,实行固定值mon+对应月份的拼接,不出效果,望赐教。
declare @m int set @m=month(getdate())exec ('select [mon'+ltrim(@m)+'] from 工资表')
declare @i int,@sql varchar(1000),@j int select @i=datepart(mm,getdate()),@j=1 while @j<=@i begin set @sql=isnull(@sql+',','')+'mon'+ltrim(@j) set @j=@j+1 end print 'select '+@sql+' from tb' /* select mon1,mon2,mon3 from tb*/ exec( 'select '+@sql+' from tb')
DECLARE @M INT,@SQL VARCHAR(50) SET @M=DATEPART(MM,GETDATE())SET @SQL='SELECT MON'+LTRIM(@M)+' FROM TB' PRINT @SQL
exec里不能用函数declare @m int set @m=ltrim(month(getdate()))exec ('select [mon'+@m+'] from 工资表')
SELECT 'MON'+cast(DATEPART (mm,getdate()) as varchar(2)) FROM TB
SET @M=DATENAME(MM,GETDATE())EXEC('SELECT MON'+@M+' FROM TB')
我用convert,substring等等,实行固定值mon+对应月份的拼接,不出效果,望赐教。
set @m=month(getdate())exec ('select [mon'+ltrim(@m)+'] from 工资表')
select @i=datepart(mm,getdate()),@j=1
while @j<=@i
begin
set @sql=isnull(@sql+',','')+'mon'+ltrim(@j)
set @j=@j+1
end
print 'select '+@sql+' from tb'
/*
select mon1,mon2,mon3 from tb*/
exec( 'select '+@sql+' from tb')
SET @M=DATEPART(MM,GETDATE())SET @SQL='SELECT MON'+LTRIM(@M)+' FROM TB'
PRINT @SQL
set @m=ltrim(month(getdate()))exec ('select [mon'+@m+'] from 工资表')
SELECT 'MON'+cast(DATEPART (mm,getdate()) as varchar(2)) FROM TB