我正在使用两个表,表一是part_order看起来像
ONum PNum NumOrdered QuotPrice
2236 BZ66 1
2236 AZ52 10 29.90
2237 CA14 3
2240 CB03 1
和表二是部分,看起来像
PNum Description OnHand Warehouse UnitPrice
AZ52 Skates 20 2 36.95
BZ66 Washer 5 1 465.50
CA14 Skillet 13 1 28.99
CB03 Bike 44 3 195.50
我正在尝试使用unitprice值更新我的quotprice列,如果它为null。这意味着29.90应该保留,但其他人应该更新。
我输入:
update part_order
set quotprice = (select part.unitprice
from part
where part.pnum = part_order.pnum
and quotprice is null);
除此之外,它可以切换值。我的29.90变为null,其他3个值更新。如果我再次输入,其他3个值将返回null,第二个值将填充36.95。我想知道为什么它改变了值而不是只检查空值。
答案 0 :(得分:3)
UPDATE po
SET po.QuotPrice = p.UnitPrice
FROM part_order AS po
INNER JOIN part AS p ON po.pnum = p.pnum
WHERE po.QuotPrice IS NULL
答案 1 :(得分:2)
update part_order
set quotprice = (select part.unitprice
from part
where part.pnum = part_order.pnum)
WHERE quotprice IS NULL;