declare @sql varchar(8000),@PO VARCHAR(30)set @PO='00733651941' 
SET @sql='select 箱号ID as ID,箱号,'select @sql=@sql+'sum(case 尺码 when '''+尺码+''' then 件数 else 0 end)as '''+尺码+''','
from (select distinct convert(int,尺码)as 尺码 from WG_PK_Z where Pk_No='00733651941')as a select @sql = left(@sql,len(@sql)-1) + ' from WG_PK_Z Where Pk_No='+''''+@PO+''''+' group by 箱号ID,箱号'exec(@sql)


错误提示如下:服务器: 消息 245,级别 16,状态 1,行 2
将 varchar 值 '' then 件数 else 0 end)as '' 转换为数据类型为 int 的列时发生语法错误。


[color=808000]注:如果这里“select distinct convert(int,尺码)as 尺码 from WG_PK_Z where Pk_No='00733651941'”不将它转换为整数型,select distinct 尺码 from WG_PK_Z where Pk_No='00733651941'这样就不会出错。 好奇怪不知为何![/color]