2017-03-09 58 views
-3

我插入一行数据从一个表的列到另一个表的列。这是我的工作完成:插入使用插入和内部联接

Insert into [Inventory](Cost) 
Select cast(a.[CCost] as numeric(18,6)) from [InventoryTemp] as a 
Inner join [Inventory] as b on a.[ID] = b.[ID] 

我有10000行的数据在我的[库存表(ID列被填满),但在执行上面的查询时,成本数据从10001开始,直到20000

Inventory      InventoryTemp 
ID  Cost     ID   Cost 
1        1   3.12 
3        3   9.90 
18        18   8.80 

我想

Inventory 
ID   Cost 
1   3.12 
3   9.90 
18   8.80 
+0

'ID'' identity'? –

+0

提供表格结构和样本数据。 –

+0

是的,但不是主键。 –

回答

1

如果我读正确你的问题的结果,我想你想在你的库存表更新费用列的值的基础上,在T值他InventoryTemp表。

因此,您希望执行UPDATE命令而不是INSERT。

这方面的一个例子是:

UPDATE 
    Inventory 
SET 
    Inventory.Cost = InventoryTemp.Cost 
FROM 
    Inventory 
INNER JOIN 
    InventoryTemp 
ON 
    Inventory.ID = InventoryTemp.ID 

欲了解更多信息,请参阅这个问题:How do I UPDATE from a SELECT in SQL Server?

0

您需要使用UPDATE而不是'插入”

UPDATE i 
SET [Cost] = it.[Cost] 
FROM [Inventory] i 
INNER JOIN [InventoryTemp] it 
ON i.ID = it.ID 
0

尝试使用更新。

UPDATE b 
SET b.Cost = a.Cost 
FROM 
[InventoryTemp] as a 
Inner join [Inventory] as b on a.[ID] = b.[ID]