代码如下:
[code]
declare @sql varchar(8000)
set @sql = 'select 月份,客户'
select @sql = @sql + ',isnull (sum(case 产线 when '''+产线+''' then 负荷率 end),0) as ['+产线+']'
from (select distinct 产线 from cnfh) as a
select @sql = @sql+' from cnfhgroup by 月份,客户'
exec(@sql)
[/code]
当我将它改成这样就报错了,提示:
服务器: 消息 403,级别 16,状态 1,行 4
对数据类型而言运算符无效。运算符为 modulo,类型为 varchar。
[code]
declare @sql varchar(8000)
set @sql = 'select 月份,客户'
select @sql = @sql + ',cast(isnull (sum(case 产线 when '''+产线+''' then 负荷率 end),0) as varchar(12)) +'%' as ['+产线+']'
from (select distinct 产线 from cnfh) as a
select @sql = @sql+' from cnfhgroup by 月份,客户'
exec(@sql)
[/code]
------解决思路----------------------
declare @sql varchar(8000)
set @sql = 'select 月份,客户'
select @sql = @sql + ',cast(isnull (sum(case 产线 when '''+产线+''' then 负荷率 end),0) as varchar(12)) +'‘%'’ as ['+‘产线’+']'
from (select distinct 产线 from cnfh) as a
select @sql = @sql+' from cnfhgroup by 月份,客户'
exec(@sql)