sql

'+@tbname2+'
改为
'''+@tbname2+'''
exec('select substring('''+@tbname2+''',1,8),SUM(rmbchange),(select SUM(rmbchange) from [dbo].['''+@tbname2+'''] where rmbchange>0) from [dbo].['''+@tbname2+'''] where rmbchange<0')

解决方案 »

  1.   

    这个你要理解subString函数是对字符进行操作,而后面的表名你也用的@tbname2不用额外处理是因为会当做一个变量。加引号应该如下:insert into #t
    exec('select substring('‘+@tbname2+’',1,8),SUM(rmbchange),(select SUM(rmbchange) from [dbo].['+@tbname2+'] where rmbchange>0) from [dbo].['+@tbname2+'] where rmbchange<0')
      

  2.   


    insert into #t
    exec('select substring(''+@tbname2+'',1,8),SUM(rmbchange),(select SUM(rmbchange) from [dbo].['+@tbname2+'] where rmbchange>0) from [dbo].['+@tbname2+'] where rmbchange<0')