Как обновить таблицу с объединением на себя - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь обновить столбец в таблице, который объединяет сам себя, чтобы отфильтровать данные.

Первоначально фрагмент кода был для SQL Server, и я попытался изменить его, чтобы он работал в Vertica. Я получаю эту ошибку: ERROR: Syntax error at or near "inner"

update REPORT.sub_2018_ALL a 
    inner join REPORT.sub_2018_ALL p 
    on a.MBR_ID= p.MBR_ID and a.NAME = p.NAME
set RESULT = 'F'
where p.STATUS_REASON = 'Submitted' and a.REVIEW_RESULT is null

Я не уверен, что это из-за псевдонима или если невозможно обновить, когда таблица присоединяется к себе. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 апреля 2019

Я думаю, вы хотите что-то вроде этого:

update REPORT.sub_2018_ALL a 
    set RESULT = 'F'
where a.REVIEW_RESULT is null and
      exists (select 1
              from REPORT.sub_2018_ALL p 
              where a.MBR_ID = p.MBR_ID and
                    a.NAME = p.NAME and
                    p.STATUS_REASON = 'Submitted'
             );

Для записи, ваш оригинальный синтаксис не будет работать на SQL Server, хотя он может работать на MySQL.

...