Как обновить строки таблицы значениями из объединения таблиц в Oracle - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно обновить таблицу (таблица 1) значениями, полученными при объединении таблицы 1 с таблицей 2

Мне удалось добиться этого в SQL Server:

UPDATE loanacct_payment_history SET paid_by_cifno=loanacct.cifno FROM loanacct_payment_history INNER JOIN loanacct ON loanacct_payment_history.acctrefno=loanacct.acctrefno

вышеуказанный SQL отлично работает в SQL Server, но не работает в Oracle.

Я попробовал следующее в Oracle, но оно не работает:

UPDATE loanacct_payment_history LAPH SET (paid_by_cifno) = (SELECT LA.cifno FROM loanacct LA WHERE LA.acctrefno = LAPH.acctrefno) WHERE EXISTS (SELECT LA.cifno FROM loanacct LA WHERE LA.acctrefno = LAPH.acctrefno)

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 июня 2019

Что значит "не работает"?Следующее должно быть синтаксически правильным в SQL и обновлять то, что вы хотите:

UPDATE loanacct_payment_history LAPH
    SET paid_by_cifno = (SELECT LA.cifno
                         FROM loanacct LA
                         WHERE LA.acctrefno = LAPH.acctrefno
                        )
    WHERE EXISTS (SELECT LA.cifno
                  FROM loanacct LA
                  WHERE LA.acctrefno = LAPH.acctrefno
                 )
...