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语句?