Có vẻ như trình phân tích cú pháp không thích điều đó, mặc dù thực tế là nó đúng. Có lẽ bằng cách nào đó, hai điều khoản có sẵn và ra lệnh đang làm anh ta mờ mắt. Tôi đã sao chép điều đó.
Bạn có thể sử dụng một chức năng phân tích:
update table1 alf
set nextcontractid =
(SELECT min(contractid) keep (dense_rank first order by lasttradedate asc)
FROM table1copy alf2
WHERE alf2.assetid = alf.assetid
AND alf2.lasttradedate > alf.lasttradedate
)
where alf.complete = 0