Tsql 如何使用上一个查询的结果插入到表中
早上好 我正在使用前面查询的结果填充一个多对多表,如下所示Tsql 如何使用上一个查询的结果插入到表中,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,早上好 我正在使用前面查询的结果填充一个多对多表,如下所示 WITH Temp AS ( SELECT UserID, Result FROM <Master_Table> WHERE UserID IN (SELECT Name FROM Users) ) INSERT INTO UserDecisions (User_Id, Decision_Id) VALUES ( (
WITH Temp AS
(
SELECT UserID, Result
FROM <Master_Table>
WHERE UserID IN (SELECT Name FROM Users)
)
INSERT INTO UserDecisions
(User_Id, Decision_Id)
VALUES
(
(SELECT Id FROM Users WHERE Temp.UserID = Users.Name),
(SELECT Id FROM Decisions WHERE Temp.Result = Decisions.Name)
)
请问您如何解决这个问题?Temp子查询是否需要是临时表?您需要将其作为SELECT而不是VALUES子句写入:
我认为,问题是,您尝试在其中插入一个值列表,因为这两个值选择返回列表,而不仅仅是一个值。
Msg 4104, Level 16, State 1, Line 22
The multi-part identifier "Temp.UserID" could not be bound.
Msg 4104, Level 16, State 1, Line 23
The multi-part identifier "Temp.Result" could not be bound.
WITH Temp AS
(
SELECT UserID, Result
FROM <Master_Table>
WHERE UserID IN (SELECT Name FROM Users)
)
INSERT INTO UserDecisions
(User_Id, Decision_Id)
SELECT u.Id,d.Id
FROM Temp t
INNER JOIN Users u ON t.UserID = u.Name
INNER JOIN Decisions d ON t.Result = d.Name