Как обновить значение Subtract для существующей таблицы, используя Mysql - PullRequest
3 голосов
/ 07 марта 2020

В моей таблице три столбца, имя столбца - date_time, total, sub, и я хочу обновить существующий вложенный столбец, вычитая общее значение предыдущей строки и общее значение следующей строки в порядке столбца date_time, используя mysql .Я не знаю, как этого добиться. Данные приведены ниже

   date_time           total     sub

2019-03-07 12:32:10     50        0
2019-03-07 12:34:22     60        0
2019-03-07 12:37:17     75        0
2019-03-07 12:44:10     100       0

Я хочу обновить вышеупомянутую запись как

  date_time           total     sub

2019-03-07 12:32:10     50        0
2019-03-07 12:34:22     60        10
2019-03-07 12:37:17     75        15
2019-03-07 12:44:10     100       25

Пожалуйста, помогите мне достичь этого результата.

1 Ответ

1 голос
/ 07 марта 2020

Попробуйте этот код

update your_table_name U left join 
(select 
      (CASE
         WHEN @pev_row_value = 0 THEN  0   
         ELSE (`your_table_name `.total - @pev_row_value) 
       END) as sub_result,  
       (@pev_row_value :=  `your_table_name `.total ) as current_row,
       users.* 
       FROM `your_table_name ` cross join
       (select @pev_row_value := 0) params  
 order by date_time asc) A on U.date_time=A.date_time 
 set U.sub = A.sub_result

Надеюсь, все будет хорошо. В инструкции CASE WHEN ELSE установите sub_result для обновления, а pev_row_value сохранит значение предыдущей строки общего значения столбца. Затем все восстановленное значение работало как таблица с новым именем A и обновляло окончательное значение, присоединяя новую таблицу A.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...