Mysql 如何在运行ac_原理的基础上求解运行原理?

Mysql 如何在运行ac_原理的基础上求解运行原理?,mysql,sql,Mysql,Sql,这是我的示例查询问题 +-------+----+-----------+--------------+------+ | id | SN | principal | ac_principal | stat | +-------+----+-----------+--------------+------+ | 1001 | 1 | 280 | 280 | paid | | 10001 | 2 | 280 | 280 | p

这是我的示例查询问题

+-------+----+-----------+--------------+------+
| id    | SN | principal | ac_principal | stat |
+-------+----+-----------+--------------+------+
|  1001 |  1 | 280       | 280          | paid |
| 10001 |  2 | 280       | 280          | paid |
| 10002 |  3 | 280       | -280         | NULL |
| 10003 |  4 | 280       | NULL         | NULL |
| 10004 |  5 | 280       | NULL         | NULL |
| 10005 |  6 | 280       | NULL         | NULL |
| 10006 |  7 | 280       | NULL         | NULL |
| 10007 |  8 | 280       | NULL         | NULL |
| 10008 |  9 | 280       | NULL         | NULL |
| 10009 | 10 | 280       | NULL         | NULL |
| 10010 | 11 | 280       | NULL         | NULL |
| 10011 | 12 | 280       | NULL         | NULL |
| 10012 | 13 | 280       | NULL         | NULL |
| 10013 | 14 | 280       | NULL         | NULL |
| 10014 | 15 | 280       | NULL         | NULL |
+-------+----+-----------+--------------+------+
这是我想展示的输出

+-------+----+-----------+--------------+------+
| id    | SN | principal | ac_principal | stat |
+-------+----+-----------+--------------+------+
|  1001 |  1 | 280       | 280          | paid |
| 10001 |  2 | 280       | 280          | paid |
| 10002 |  3 | 280       | -280         | NULL |
| 10003 |  4 | 560       | NULL         | NULL |
| 10004 |  5 | 280       | NULL         | NULL |
| 10005 |  6 | 280       | NULL         | NULL |
| 10006 |  7 | 280       | NULL         | NULL |
| 10007 |  8 | 280       | NULL         | NULL |
| 10008 |  9 | 280       | NULL         | NULL |
| 10009 | 10 | 280       | NULL         | NULL |
| 10010 | 11 | 280       | NULL         | NULL |
| 10011 | 12 | 280       | NULL         | NULL |
| 10012 | 13 | 280       | NULL         | NULL |
| 10013 | 14 | 280       | NULL         | NULL |
| 10014 | 15 | 280       | NULL         | NULL |
+-------+----+-----------+--------------+------+
*注意:ac_主体中的-280必须添加到SN=4中的280主体中,因此新主体应为560

这是另一个样本

+-------+----+-----------+--------------+------+
| id    | SN | principal | ac_principal | stat |
+-------+----+-----------+--------------+------+
|  1001 |  1 | 280       | 280          | paid |
| 10001 |  2 | 280       | 280          | paid |
| 10002 |  3 | 280       | -280         | NULL |
| 10003 |  4 | 560       | 560          | paid |
| 10004 |  5 | 280       | 280          | paid |
| 10005 |  6 | 280       | 280          | paid |
| 10006 |  7 | 280       | -280         | NULL |
| 10007 |  8 | 560       | -280         | NULL |
| 10008 |  9 | 840       | NULL         | NULL |
| 10009 | 10 | 280       | NULL         | NULL |
| 10010 | 11 | 280       | NULL         | NULL |
| 10011 | 12 | 280       | NULL         | NULL |
| 10012 | 13 | 280       | NULL         | NULL |
| 10013 | 14 | 280       | NULL         | NULL |
| 10014 | 15 | 280       | NULL         | NULL |
+-------+----+-----------+--------------+------+

也许是这样的

   CASE
     WHEN (SELECT t.ac_principal FROM tbl1 t WHERE t.SN = SN-1) LIKE '-%') THEN principal - (SELECT t.ac_principal FROM tbl1 t WHERE t.SN = SN-1)
     ELSE principal
    END principal

数据集和结果集看起来非常相似。我正在努力找出差异。看起来像10003 | 4 | 560 | NULL | NULL,从280变为560对我来说也花了一些时间。所以,每当ac|U校长为负值时,下一个记录就变成校长-前一个ac|U校长?例如:280--280=560如果ac_主体为负280,那么它将自动添加到下一个主体,使其成为560ah,因此它必须是一个update语句?