把exec改成print,看看有没有什么语法错误,貌似少了括号

解决方案 »

  1.   

    declare @sql varchar(8000),@subt varchar(8000)
    set @sql = 'select c_name '
    set @subt ='(select * from cqtj_data where  c_cqrq between 20140301 and 20140305 )'
    select @sql = @sql + ' , sum(case c_cqlb when ''' + c_cqlb + ''' then c_cqsl else 0 end) [' + c_cqlb + ']'
    from (select distinct c_cqlb from cqtj_data) as a
    set @sql = @sql + ' from '+@subt +' t'+' group by c_name ' 
    EXEC(@sql)