2017-03-09 5 views
-3

あるテーブルの列から別のテーブルの列にデータの行を挿入しています。これが私の仕事が行われます。Insert IntoとInner Joinを使用して挿入

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列がいっぱいになる)が、上記のクエリが実行された際に、費用データは20000

まで10001から開始しました
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」は「身元」ですか? –

+0

は、テーブル構造とサンプルデータを提供します。 –

+0

はい、プライマリキーはありません。 –

答えて

1

をしたい結果私が正しくあなたの質問を読んでいれば、私はあなたがトンの値に基づいて、あなたの在庫表のコスト列の値を更新しようとしていると思います彼はInventoryTempテーブル。

したがって、INSERTではなくUPDATEコマンドを実行します。

この例は、次のようになります。詳細については

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

あなたが使用してみてください代わりに `INSERT」

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

UPDATEを使用する必要があります更新。

UPDATE b 
SET b.Cost = a.Cost 
FROM 
[InventoryTemp] as a 
Inner join [Inventory] as b on a.[ID] = b.[ID] 
関連する問題