Sql server SQL Server-如何将子查询或表变量中不同表的select结果插入存储过程中的新表变量中?
这个标题很复杂。 我基本上想做的是: 我希望我的存储过程向用户显示一个类似于过程所做的“结果表”的内容。 但我在使用“INSERT INTO”语句插入子查询值或表变量数据时遇到了极端问题 需要插入到我的结果表(delcareas@resulttable)中的数据来自两个不同的表。以及我之前声明的一个表变量(@allupdatemids) 我已经尝试过这些脚本来实现这一点:Sql server SQL Server-如何将子查询或表变量中不同表的select结果插入存储过程中的新表变量中?,sql-server,tsql,Sql Server,Tsql,这个标题很复杂。 我基本上想做的是: 我希望我的存储过程向用户显示一个类似于过程所做的“结果表”的内容。 但我在使用“INSERT INTO”语句插入子查询值或表变量数据时遇到了极端问题 需要插入到我的结果表(delcareas@resulttable)中的数据来自两个不同的表。以及我之前声明的一个表变量(@allupdatemids) 我已经尝试过这些脚本来实现这一点: INSERT INTO @resulttable (UpdatedItemID, UpdatedItemName,
INSERT INTO @resulttable (UpdatedItemID, UpdatedItemName, NewProbability)
SELECT * FROM @allupdateditemIDs ORDER BY ItemNum ASC,
SELECT ItemName FROM ti_Item WHERE ItemNum IN (SELECT * FROM @allupdateditemIDs) ORDER BY ItemNum ASC,
SELECT MixingProbability FROM ti_ItemMixingInfo WHERE TargetItemNum IN (SELECT * FROM @allupdateditemIDs) ORDER BY TargetItemNum ASC
这个也没有“,”
或者这个:
INSERT INTO @resulttable (UpdatedItemID, UpdatedItemName, NewProbability)
VALUES ((SELECT * FROM @allupdateditemIDs ORDER BY ItemNum ASC),
(SELECT ItemName FROM ti_Item WHERE ItemNum IN (SELECT * FROM @allupdateditemIDs) ORDER BY ItemNum ASC),
(SELECT MixingProbability FROM ti_ItemMixingInfo WHERE TargetItemNum IN (SELECT * FROM @allupdateditemIDs) ORDER BY TargetItemNum ASC))
我已经在很多网站上搜索过了,但是我找不到任何有用的东西,因为我没有从1个表中获取表变量的数据,而是从很多表中获取
我非常感谢你的帮助。提前感谢;) 我认为您可以在select查询中连接所有三个表,以获得如下正确数据:
INSERT INTO @resulttable (UpdatedItemID, UpdatedItemName, NewProbability)
SELECT @allupdateditemIDs.ItemNum,ti_Item.ItemName,ti_ItemMixingInfo.MixingProbability
FROM @allupdateditemIDs Inner join ti_Item
ON ti_Item.ItemNum =@allupdateditemIDs.ItemNum inner join ti_ItemMixingInfo
on ti_ItemMixingInfo.TargetItemNum=@allupdateditemIDs.ItemNum
ORDER BY @allupdateditemIDs.ItemNum ASC
试试这个-
INSERT INTO @resulttable
(
UpdatedItemID
, UpdatedItemName
, NewProbability
)
SELECT
t.ItemNum
, tt.ItemName
, tmi.MixingProbability
FROM @allupdateditemIDs t
JOIN dbo.ti_Item tt ON tt.ItemNum = t.ItemNum
JOIN dbo.ti_ItemMixingInfo tmi ON tmi.TargetItemNum = t.ItemNum
ORDER BY t.ItemNum
就这样!非常感谢您的回答!