如何基于自联接更新表

时间:2018-01-17 10:51:07

标签: sql oracle

根据customer_po = ID

上的自联接更新表

表XYZ

ID     Invoice Date   Delivery_date  Customer_po
123    01-01-2018     null           null               
125    10-01-2018     null           123

我想在Oracle SQL

中输出如下所示的输出记录
ID     Invoice Date   Delivery_date  Customer_po
123    01-01-2018     01-01-2018     null
125    10-01-2018     01-01-2018     123

1 个答案:

答案 0 :(得分:1)

您需要这样的更新声明。

UPDATE xyz
   SET Delivery_date =
          (SELECT MAX (invoice_date)
             FROM xyz
            WHERE Customer_po = 123);

请注意,我使用MAX来避免因Customer_po = 123

的多个值而导致的错误