Android SQLite обновляет текущую таблицу на основе (сумма (текущая таблица + другая таблица)) - PullRequest
1 голос
/ 20 июня 2020

У меня есть две таблицы в Android SQLite dbHelper:

Таблица № 1 :

itemName | PCS
---------+------
item1    | 5
item2    | 7
item3    | 3

и Таблица № 2 :

itemName | PCS
---------+------
item2    | 2
item3    | 17

Мне нужно обновить столбец PCS в таблице №1, добавить все PCS из таблицы №2 в таблицу №1 (сумма) \

Мне нужен этот вывод:

обновлено Таблица №1 :

    itemName | PCS
    ---------+------
    item1    |  5
    item2    |  9
    item3    | 20

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Вы можете использовать коррелированный подзапрос, который возвращает значение pcs из Table2 и добавляет его к значению pcs из Table1:

update Table1
set pcs = pcs + coalesce((select pcs from Table2 where Table2.itemname = Table1.itemname), 0)
0 голосов
/ 20 июня 2020

Один из вариантов - объединение строк этих таблиц с помощью оператора INSERT OR REPLACE INTO :

INSERT OR REPLACE INTO Table1(itemName,PCS)
SELECT t1.itemName, COALESCE(t1.PCS,0)+COALESCE(t2.PCS,0)
  FROM Table1 t1 
  LEFT JOIN Table2 t2 ON t2.itemName = t1.itemName;

при условии, что столбцы itemName определены как первичные ключи.

Демо

...