sql-server - 使用 INSERT 查询,其中一列来自另一表

标签 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))

?00003RetailPrice (即 3.00)> 来自 Table2,然后乘以 Sold (即 5)

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

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

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

最佳答案

我相信您正在追求这样的东西:

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

关于sql-server - 使用 INSERT 查询,其中一列来自另一表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45457441/

相关文章:

sql - 使用 case 语句有条件地设置变量

c# - 使用 ASP.NET 应用程序中的动态 SQL 插入多个值

sql-server - SQL Server DB 停止复制

sql - 在 SQL 中创建不同长度的序列

sql-server - 如何在sql server中设置int的范围

sql-server - 在 SQL Server 中使用 IF 测试值

sql - 将 SQL 列中的分隔值拆分为多行

SQL 选择如果计数

ios - 将从iPad/iPhone拍摄的图像保存到sql server数据库base64

sql-server - 带订单树的递归 SQL 查询