我正在处理一个查询,该查询将一个表中的表连接到另一个数据库上的表变量。但是每次我尝试运行它时,都会收到一条错误消息,说我需要声明表变量,但它已经声明了。请帮忙!
declare @Employee Table
(
agt_responsible int,
employee_last_name varchar(50),
employee_first_name varchar(50),
#_of_Compliments int,
DEBIT_Count int,
DEBIT_POTENTIAL_AMT INT, DEBIT_TNT_AMT int,
#_of_Value_Adds int,
amt_of_Value_Adds int
)
INSERT INTO @Employee
Exec proc_performance_AGT_roi '2015-05-01','2015-05-30'
SELECT *
from omadb08.TANDT_EMPLOYEE.dbo.ADP_EMPLOYEE
INNER JOIN @Employee
ON @Employee.agt_responsible = OMADB08.TANDT_EMPLOYEE.DB0.ADP_EMPLOYEE.EMPLOYEE_ID
答案 0 :(得分:4)
由于解析查询的方式,当您在联接中使用表变量时,您需要使用带引号的标识符(""
或INNER JOIN @Employee
ON @Employee.agt_responsible
)或别名,因此请更改此部分:
INNER JOIN @Employee e
ON e.agt_responsible
要么:
INNER JOIN @Employee
ON [@Employee].agt_responsible
或
INNER JOIN @Employee
ON "@Employee".agt_responsible
或
{{1}}
我会使用别名选项,因为我认为它使查询更容易阅读。