使用INSERT查询,一列来自另一个表

时间:2017-08-02 09:53:07

标签: sql-server

使用这些表格:

表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

有没有办法使用INSERTTable1,如下所示:

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

?是来自RetailPrice的{​​{1}} 3.00 00003,然后乘以Table2 {1}} Sold

我偶然发现了INSERT INTO SELECT,但这要求所有要插入的列都具有5的匹配值,这是我不需要的。

注意: 前三个值将来自外部源,因此第四个值将是唯一需要来自另一个表的值< / em>的

我当然可以在插入之前首先使用另一个查询来获取SELECT,但我避免使用这种方式来减少加载时间。

2 个答案:

答案 0 :(得分:2)

我相信你是在追求这样的事情:

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

答案 1 :(得分:1)

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