我想将所有产品从Location2添加到Location1并删除所有Location2记录(可选)。 如何在不创建另一个表的情况下执行此操作?
当前SQL语句:
Update Table1
set Quantity = (Convert(INT,Quantity) +
Convert(INT, (Select Quantity from Table1 where Location = 'Loc2')) )
where Location = 'Loc1';
但只有当有1个产品时才有效。如何修改代码以允许更新我的所有产品? 谢谢。
P.S。下面是所需前后结果的截图,如果我的附加截图无法显示。
答案 0 :(得分:0)
这个答案适用于MYSQL。仔细观察,OP没有使用MySQL。
您可以在join
:
update
Update Table1 t1 join
Table1 tt1
on tt1.productId = t1.productId
set t1.Quantity = (t1.Quantity + tt1.Quantity)
where t1.Location = 'Loc1' and tt1.Location = 'Loc2';
我不知道为什么要将quantity
转换为整数。它应该已经存储为数字。
检查结果后,您可以delete
" Loc2"行:
delete t from table1 t
where t.Location = 'Loc2';
我不认为你可以在MySQL中的一个语句中执行update
/ delete
。
答案 1 :(得分:0)
在SQL中,戈登的答案是:
UPDATE t1
SET t1.Quantity = (t1.Quantity + t2.Quantity)
FROM Table1 t1
JOIN Table1 t2
ON t1.ProductId = t2.ProductId
WHERE t1.Location = 'Loc1' and t2.Location = 'Loc2'