Обновление пустых значений таблицы SQL - PullRequest
1 голос
/ 13 октября 2011

Я работаю с двумя таблицами, первая таблица 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

Я пытаюсь обновить свой столбец quotprice значениями unitprice, если он пуст. Значение 29,90 должно остаться, а остальные должны быть обновлены.

Я набираю:

 update part_order
    set quotprice = (select part.unitprice
    from part
    where part.pnum = part_order.pnum
    and quotprice is null);

И это работает помимо переключения значений. Мои 29,90 обнуляются, а остальные 3 значения обновляются. Если я наберу его снова, остальные 3 значения вернутся к нулю, а 2-е будет заполнено 36,95. Мне интересно, почему он изменяет значения, а не проверяет только нулевые значения.

Ответы [ 2 ]

3 голосов
/ 13 октября 2011
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
2 голосов
/ 13 октября 2011
 update part_order
   set quotprice = (select part.unitprice
                    from part
                    where part.pnum = part_order.pnum)
   WHERE quotprice IS NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...