使用这些表格:
表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
的{{1}} (3.00
) 00003
,然后乘以Table2
{1}} (Sold
)?
我偶然发现了INSERT INTO SELECT
,但这要求所有要插入的列都具有5
的匹配值,这是我不需要的。
注意: 前三个值将来自外部源,因此第四个值将是唯一需要来自另一个表的值< / em>的
我当然可以在插入之前首先使用另一个查询来获取SELECT
,但我避免使用这种方式来减少加载时间。
答案 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))