У меня есть запрос, в котором я хотел бы обновить значение на основе определенного условия для каждого первичного ключа. Например, везде, где TYPE - «ASBESTOS», а TYPE «CONTIN» отсутствует для этого конкретного проекта c, можно изменить значение «ASBESTOS» на «CONTIN».
Я добился этого с помощью приведенного ниже запроса, но это обновляет значения ASBESTOS всего населения до CONTIN, даже если CONTIN уже присутствует, что в основном приводит к дублированию значений. Следует только добавить его, если CONTIN еще не существует. Возможно, функция windows будет работать так, чтобы она смотрела на каждый отдельный проект, но я получаю синтаксическую ошибку. Спасибо за вашу помощь!
SELECT PROJECT,
CASE WHEN TYPE = 'ASBESTOS' AND TYPE NOT IN 'CONTIN' THEN 'CONTIN' ELSE TYPE END AS TYPE,
SUM(OBLIGATION) AS OBS
FROM OBS_MASTER
WHERE PROJECT = '074190'
GROUP BY PROJECT, TYPE;
Original:
PROJECT TYPE OBS
074190 ASBESTOS 26326.99
074190 CM 0
Current Result:
PROJECT TYPE OBS
074190 CM 0
074190 CONTIN 26326.99