Как вычесть данные из таблицы2 в таблицу1 - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь вычесть и добавить существующие значения в таблицу, как это

Таблица 1

id       q      q_out    
1        10         0    
2        10         0

Таблица 2

id     q    
1      2
1      1
2      1
2      2

Я ожидаю этот выводкогда я обновляю таблицу 1:

id     q      q_out
1      7       3   
2      7       3

, но я получаю этот вывод:

id     q      q_out    
1      8       2    
2      9       1

это мой запрос:

UPDATE 
    db_pro d 
    JOIN cart c ON d.pro_num = c.p_num 
SET 
    d.q = (d.q - c.q), 
    d.out_q = (d.out_q + c.q) 
WHERE 
    c.s_num='13-37478' and 
    c.class not like 'Books' and 
    c.remarks like 'On Process'

1 Ответ

1 голос
/ 30 марта 2019

Вам необходимо присоединиться к сводным значениям таблицы корзины:

UPDATE 
    db_pro d 
    JOIN (
      select p_num, sum(q) q from cart 
      WHERE
        s_num='13-37478' and 
        class not like 'Books' and 
        remarks like 'On Process' 
      group by p_num
    ) c ON d.pro_num = c.p_num 
SET 
    d.q = (d.q - c.q), 
    d.out_q = (d.out_q + c.q) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...