【发布时间】:2021-06-07 14:43:17
【问题描述】:
所以基本上我有一个类似于这个的代码执行存储过程:
DROP TABLE IF EXISTS [TempTable]
SELECT [Item1], [Item2], [Item3]
INTO [TempTable]
FROM [Table1] K
INNER JOIN [Table2] C
WHERE [Item3] = @timeVariable
GROUP BY [Item1];
SELECT [Item1], [Item2], [Item3], [Item2]/[Item3] AS Sum1
FROM [TempTable];
GO
问题是,当我尝试运行第二个查询时,它会在列中显示错误。
如果我单独运行代码就不会发生这种情况。
例如:
- 先跑上半部分
DROP TABLE IF EXISTS [TempTable]
SELECT [Item1], [Item2], [Item3]
INTO [TempTable]
FROM [Table1] K
INNER JOIN [Table2] C
WHERE [Item3] = @timeVariable
GROUP BY [Item1];
- 然后是整个代码
DROP TABLE IF EXISTS [TempTable]
SELECT [Item1], [Item2], [Item3]
INTO [TempTable]
FROM [Table1] K
INNER JOIN [Table2] C
WHERE [Item3] = @timeVariable
GROUP BY [Item1];
SELECT [Item1], [Item2], [Item3], [Item2]/[Item3] AS Sum1
FROM [TempTable];
GO
我正在尝试找到一种方法来成功运行整个查询,而不会在第二个查询的第一次运行时出错并且必须单独运行查询。
错误是
列名“列名”无效
【问题讨论】:
-
尝试将
go放在两个查询之间,这样它们就不会在同一个批次中。 -
现在不显示错误了!唯一的问题是,由于现在是一个存储过程,它只运行第一部分!我将进行编辑以澄清该细节!谢谢!
-
你为什么要删除并重新创建?
-
因为这个表在其他存储过程中也是用来传输数据的!所以我可以在另一个查询中进行操作,例如枢轴中的列不会让我!
标签: sql sql-server select pivot