Условный оператор UPDATE, использующий JOIN для двух таблиц - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь условно обновить таблицу структуры, присоединенную к таблице контракта, где существуют различные типы разрешений, которые необходимо обновить.Я включил 2 в качестве примера, но у меня есть 10 для обновления:

update structure set
  structure_item_cost = case when (contract_lut_contract_status_id in 
      (17,16) and structure_lut_permit_type_id = 6) then 2500
    else
    case when (contract_lut_contract_status_id in (17,16) and 
      structure_lut_permit_type_id = 17) then 5000
    end
FROM structure
join contract on contract_interest_id = structure_interest_id

Я хочу обновить стоимость элемента структуры на основе двух критериев: contract_lut_contract_status_id in (17,16), а затем на другом условии where structure_lut_permit_type_id = 17.

1 Ответ

0 голосов
/ 03 июля 2019

просто удалите остальное case

update structure
set structure_item_cost = case 
                              when (contract_lut_contract_status_id in 
(17,16) and structure_lut_permit_type_id = 6) then 2500
                              when (contract_lut_contract_status_id in (17,16) and 
structure_lut_permit_type_id = 17) then 5000 end
FROM structure join contract on contract_interest_id = structure_interest_id

или добавьте еще один конец в оператор case

update structure
set structure_item_cost = case when (contract_lut_contract_status_id in 
  (17,16) and structure_lut_permit_type_id = 6) then 2500
else
case when (contract_lut_contract_status_id in (17,16) and 
  structure_lut_permit_type_id = 17) then 5000
end end
FROM structure join contract on contract_interest_id = structure_interest_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...