[英]Update multiple records table from another multiple records table
I don't know the right title about it. 我不知道正确的标题。 But, Let me explain about my question.
但是,让我解释一下我的问题。
I have 2 tables 我有2张桌子
PartTable
-------------------------------
ID | Quantity
1 | 10
2 | 10
3 | 10
TransTable
-------------------------------
TransID |ID | QtyIssue
1 |1 | 2
1 |2 | 2
1 |3 | 2
for TransTable, I'm using single query to insert. 对于TransTable,我使用单个查询进行插入。
How to update Quantity on PartTable in single Query? 如何在单个查询中更新PartTable上的数量?
Quantity = Quantity - QtyIssue
I'm using this update statement: 我正在使用此更新语句:
UPDATE PartTable SET Quantity = Quantity - (SELECT QtyIssue FROM TransTable WHERE TransID = 1)
WHERE ID IN (SELECT ID FROM TransTable WHERE TransID = 1)
But error : 但是错误:
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
Is it possible? 可能吗?
Please help anyone. 请帮助任何人。 Thanks.
谢谢。
You Can Update It by Using Derived Table 您可以使用派生表进行更新
UPDATE PartTable
SET Quantity = Quantity - b.QtyIssue
FROM PartTable a
INNER JOIN (
SELECT SUM(QtyIssue) QtyIssue,ID
FROM TransTable WHERE TransID = 1
GROUP BY ID) b ON a.ID = b.ID
Here you go >> 你去>>
UPDATE parttable pt
SET pt.quantity = pt.quantity - (SELECT tt.qtyissue
FROM transtable tt
WHERE tt.transid = 1
AND tt.id = pt.id)
WHERE pt.id IN (SELECT tt1.id
FROM transtable tt1
WHERE tt1.transid = 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.