Обновление sql в той же таблице на основе количества

имеют следующую таблицу с 4 столбцами:

product quantity value id 
---------------------------
p1 -100 5 id1
p2 40 3 id1
p2 20 2 id1
p2 40 4 id1

Мне нужен результат, когда все положительные значения получают значение отрицательного id.

требуется выход:

product quantity value id 
---------------------------
p1 -100 5 id1
p2 40 5 id1
p2 20 5 id1
p2 40 5 id1

для каждого идентификатора может быть только одно отрицательное значение. Все элементы для каждого идентификатора должны получить значение отрицательного.

1 ответ

Это должно сделать это.

update the_table t1
 set value = (select value 
 from the_table t2
 where quantity < 0
 and t2.id = t1.id)
where quantity > 0
 and id = 'id1';

Заявление не будет выполнено, если для данного идентификатора имеется более одной строки с количеством <-1

licensed under cc by-sa 3.0 with attribution.