使用参数创建mysql视图

使用参数创建mysql视图,mysql,view,parameters,Mysql,View,Parameters,这是我的第一张表t1: ----------------------------- | code | month | value | ----------------------------- | 101 |august | 1 | | 101 |September | 3 | | 101 |November | 7 | | 202 |august | 5 | | 202 |September | 6

这是我的第一张表t1

-----------------------------
| code | month      | value |
-----------------------------
| 101  |august      | 1     |
| 101  |September   | 3     |
| 101  |November    | 7     |
| 202  |august      | 5     |
| 202  |September   | 6     |
| 202  |November    | 9     |
| 303  |august      | 9     |
| 303  |September   | 3     |
-----------------------------
我想创建第二个表t2(查看表)如下所示

------------------------------------------
| code | month      | value | value_begin |
------------------------------------------
| 101  |august      | 1     |0            |
| 101  |September   | 3     |1            |
| 101  |November    | 7     |4 (3+1)      |
| 202  |august      | 5     |0            |
| 202  |September   | 6     |5            |
| 202  |November    | 2     |11 (6+5)     |
| 303  |august      | 9     |0            |
| 303  |september   | 3     |9            |
-------------------------------------------
值_begin是行上方的总和值和值_begin,就像在第101行中一样,值_begin是值3(上面)和值_begin 1(上面)的4

是否可以在视图中创建第二个表t2

下面是演示中显示的视图:

Create View V1 as
select T1.code,T1.Month,T1.Value,
       sum(IFNULL(T2.value,0)) as value_begin
  from Table1 T1
 left join Table1 T2
    On T1.code = T2.code 
   and month(str_to_date(substring(T1.month,1,3),'%b')) > month(str_to_date(substring(T2.month,1,3),'%b'))
Group by T1.code,T1.Month,T1.Value 
Order by t1.code,month(str_to_date(substring(T1.month,1,3),'%b'))
;
不允许添加变量,因此我以前的方法没有帮助。在视图中需要变量,这也是不可能的。在这里,我使用了您表格中的逻辑来克服这种情况。希望这有帮助。如果有任何查询,请返回。

注意:我在演示中添加了几行用于检查计算验证。

我认为子查询不适用于mysql视图。但是谢谢anyway@StefanusDaniel:我修改了我的解决方案。检查一下,如果坏了就告诉我