2017-08-02 13 views
1

から来たことINSERTクエリを使用:つの列がこれらのテーブルを持つ別のテーブル

表1

Date | Barcode | Sold | AmountSold 

表2

Barcode | Description | RetailPrice 
00001  Item1   1.00 
00002  Item2   2.00 
00003  Item3   3.00 
00004  Item4   4.00 
00005  Item5   5.00 

INSERTを使用する方法はありますTable1に、このように:

ある ?
INSERT INTO dbo.Table1 
VALUES ('07/11/2017', '00003', 5, (? * 5)) 

RetailPrice次いでSold5である)を乗じ、Table2から000033.00ですか)?

私はINSERT INTO SELECTを見つけましたが、これは挿入するすべての列の値がSELECTである必要がありますが、これは必要ありません。

注:最初の3つの値は、外部ソースから来るので、4番目の値は

私はもちろんの最初の別のクエリを使用することができます別のテーブルから来ている必要がある唯一のいずれかになります挿入する前にRetailPriceを入手してください。しかし、この方法でローディング時間を減らすことは避けています。

私はあなたがこのような何かをした後であると考えてい
+0

あなたは '物理的/一時/変数table'に外部ソースからデータをロードして、'選択に挿入使用することができます'を呼び出すと、最初に3つのカラムを持つ新しく導入されたテーブルとtable2の間に' join'が含まれる 'from clause'を使用します。 –

答えて

1
INSERT INTO dbo.table1 
    VALUES ('07/11/2017', '00003', 5, ((SELECT RetailPrice 
               FROM dbo.table2 
               WHERE dbo.table2.Barcode = '00003') * 5)) 
2

INSERT INTO dbo.Table1 (Date, Barcode , Sold , AmountSold) 
SELECT '07/11/2017', '00003', 5, 5 * RetailPrice 
FROM Table2 
-- WHERE Barcode = 'XXX' 
+0

これは、 'SELECT'の最初の3つの値は' FROM Table2'でも何でもできることを意味していますか? – Swellar

+0

これは私が言っている必要性の混合物です:)あなたが挿入したい、またはしたくないバーコードを含める/除外するWHERE句で値を指定する必要があることを達成しますか? –

+0

@ BartoszX最初の3つの列も固定文字列ではなく、データのセットから来ています。 –

関連する問題