0
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。

请帮帮我..谢谢

4

1 回答 1

0

正如您从错误消息中看到的那样,字符串 'cinema' 不被视为字段名称,而是被视为文字字符串。因此,您需要使用字符串变量将变量名称与 SUM 查询连接起来。应该是这样的:

DECLARE @SUM VARCHAR(5000)
SET @SUM = 'SELECT SUM(cinema'+CAST(@count AS VARCHAR(50))+') from #temptable'
EXEC (@SUM)

使用 PRINT 代替 EXEC 来测试动态 sql,以确保生成的查询是正确的。

编辑:添加了缺少的括号。

于 2013-05-24T03:50:27.510 回答