@valerik606
Web Developer

Как преобразовать таблицу?

Есть таблица:
4b2d959ef1cc4d29a01e5f2d32e0c0c7.jpg
Как с помощью SQL ее преобразовать, чтобы:
-После преобразования строка id2 будет удалена, в строке id1, значение value станет равным -8 (т.е. сумма id1.value и id2.value).

Просто укажите, с помощью чего это сделать или в какую сторону "копать", хочу разобраться, как это делается.

UPD1. Предположим таких строк много, т.е. нужно в цикле пройтись по всем записям и сделать
idN.value = idN.value + idN+1.value;
delete idN+1
UPD2. Удаляются только строки, где flag = in
UPD3. Строки out, in чередуются, их много.
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
@kretsu
ну предположим, что у вас только одна запись = 'out'
тогда как вариант задачу разбиваем на 3
1. подсчет суммы value для in select sum(value) from .... where flag = 'in'
2. вычитание этой суммы из записи= 'out'
3. удаление записей where flag = 'in'

псевдо запрос примерно так

begin transaction
update tableName
set value = value + (select sum(value) from tableName where flag = 'in')
where flag = 'out'
delete tableName where flag = 'in'
commit transaction
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
С помощью языка SQL, операторы:
select ...
update ...
delete ..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы