自动增加以前的值mysql

时间:2014-05-13 07:48:38

标签: mysql stored-procedures

我有一张带有grp列的表。

          grp
          100
          200
          300
          400

我想添加像grp_1和grp_2

这样的列
         grp        grp_1                            grp_2

         100        grp * 0 + 100                     grp * 0 + 100 
         200        grp * previous grp_1 + 10         grp * previous grp_2 + 10
         300        grp * previous grp_1 + 10         grp * previous grp_2 + 10
         400        grp * previous grp_1 + 10         grp * previous grp_2 + 10

我怎样才能实现这个

这就是我所做的,我怎样才能找到以前的grp

     create table addstock_FINAL
     select GRP ,
     grp * previous grp_1 + 10   as grp_1,
     grp * previous grp_2 + 10   as grp_2
     FROM ADDSTOCK;

提前致谢

1 个答案:

答案 0 :(得分:0)

您将使用变量:

select a.*,
       (@grp1 := @grp1 + grp + 10) as grp1,
       (@grp2 := @grp2 * grp + 10) as grp2
from AddStock a cross join
     (select @grp1 := 0, @grp2 := 1) v;

我建议包括一个订单,以确保按所需顺序进行计算。您需要在实际数据中选择适当的字段。

注意:如果grp列包含NULL值,则后续值将为NULL