Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server-如何将子查询或表变量中不同表的select结果插入存储过程中的新表变量中?_Sql Server_Tsql - Fatal编程技术网

Sql server SQL Server-如何将子查询或表变量中不同表的select结果插入存储过程中的新表变量中?

Sql server SQL Server-如何将子查询或表变量中不同表的select结果插入存储过程中的新表变量中?,sql-server,tsql,Sql Server,Tsql,这个标题很复杂。 我基本上想做的是: 我希望我的存储过程向用户显示一个类似于过程所做的“结果表”的内容。 但我在使用“INSERT INTO”语句插入子查询值或表变量数据时遇到了极端问题 需要插入到我的结果表(delcareas@resulttable)中的数据来自两个不同的表。以及我之前声明的一个表变量(@allupdatemids) 我已经尝试过这些脚本来实现这一点: INSERT INTO @resulttable (UpdatedItemID, UpdatedItemName,

这个标题很复杂。 我基本上想做的是:

我希望我的存储过程向用户显示一个类似于过程所做的“结果表”的内容。 但我在使用“INSERT INTO”语句插入子查询值或表变量数据时遇到了极端问题

需要插入到我的结果表(delcareas@resulttable)中的数据来自两个不同的表。以及我之前声明的一个表变量(@allupdatemids)

我已经尝试过这些脚本来实现这一点:

    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

就这样!非常感谢您的回答!