使用Union all to SQL Queries创建动态列名称

时间:2015-09-16 09:33:44

标签: sql sql-server sql-server-2008 stored-procedures

请查看下面的代码

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'tenantcode'.

这是我的代码的一部分,希望在SQL中实现最终输出。字符列名称应该是动态的(在这种情况下,更改YEAR NAME,如2011,2012,2013等)

执行我的存储过程时,会出现类似

的错误
if(Vendor.equalsIgnoreCase(VendorList))

当我删除所有联盟时,两个查询都单独工作。这可能是什么问题。

1 个答案:

答案 0 :(得分:2)

您错过了from #SalesPerYearUNION ALL以及以下SELECT之间的空格。

....
'from #SalesPerYear '
                   ^---here
'UNION ALL' +
' SELECT  tenantcode, locationd, name, total , t1, t2,t3,t4,t5 FROM #TotalSales ' 
 ^--- and here

这是展示它的最简单方法,你当然可以在UNION ALL

的任一侧放置一个空格
' UNION ALL ' +