SELECT @cinema_count = COUNT(c.[key]) FROM cinemas c
SET @count = 0
WHILE @count < @cinema_count
BEGIN
SET @count = @count+1
SET @buffer = 'ALTER TABLE #temptable ADD cinema'+LTRIM(RTRIM(CAST(@count AS VARCHAR)))+' MONEY DEFAULT 0 WITH VALUES'
EXEC(@buffer)
END
这是我改变我的#temptable的代码,我的#temptable现在看起来像这样:
date|cinema1|cinema2|cinema3...to cinema10
我想总结一下我的专栏的价值,问题是我不知道如何从我的#temptable中选择电影
这是我选择电影之和的代码
select @sum = sum('cinema' + CAST(@count as varchar)) from #temptable
操作数数据类型varchar对sum运算符--error无效。
hellp me pls..thanks
答案 0 :(得分:0)
正如您从错误消息中看到的那样,字符串'cinema'不被视为字段名称,而是视为文字字符串。因此,您需要使用字符串变量将变量名称与SUM查询连接起来。应该是这样的:
DECLARE @SUM VARCHAR(5000)
SET @SUM = 'SELECT SUM(cinema'+CAST(@count AS VARCHAR(50))+') from #temptable'
EXEC (@SUM)
使用PRINT代替EXEC测试动态sql,以确保生成的查询正确无误。
编辑:添加了缺少的括号。