declare @s varchar(1000)
SELECT @s = isnull(@s+'+','')+'case when 1'+Fsign+ltrim(Faultstand)+' then '+ltrim(Faultmoney)+' else 0 end'
FROM JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId
exec('select QcparmId, '+@s+' from JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId')报错:信息如下:
在关键字 'from' 附近有语法错误。
怎么搞的。

解决方案 »

  1.   

    不能看出具体的,粗略的修改:declare @s varchar(1000) 
    SELECT @s = isnull(@s,'')+',case when 1'+Fsign+ltrim(Faultstand)+' then '+ltrim(Faultmoney)+' else 0 end' 
    FROM JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId 
    exec('select QcparmId, '+@s+' from JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId') 
      

  2.   

    declare @s varchar(1000) 
    SELECT @s = isnull(@s,'')+',case when 1'+Fsign+ltrim(Faultstand)+' then '+ltrim(Faultmoney)+' else 0 end' 
    FROM JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId 
    exec('select QcparmId '+@s+' from JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId') 去掉第一个逗号
      

  3.   

    exec('select QcparmId, '+@s+' from JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId')
    -->检查:
    PRINT 'select QcparmId, '+@s+' from JJM_V_POSTASSESS v inner join JJM_D_POSTASSESS a on v.Post = a.PostId AND v.DeviceId = a.DeviceId AND v.Breed = a.BreedId inner join JJM_D_POSTASSESS_DETAIL b on a.Id = b.PostAssessId'
      

  4.   

    忘了说,JJM_V_POSTASSESS是个view这个有影响吗?