现有表Test结构与记录如下 A B C
---------
2 3
4 5现在想要实现的结果是: A B C
---------
2 3 -1
4 5 -2其实就是A减B放入C ,然后将当前记录的C结果再加上下一条记录的A,再减B.
(C=C+A-B)
如何用Sql做到?望赐教.
---------
2 3
4 5现在想要实现的结果是: A B C
---------
2 3 -1
4 5 -2其实就是A减B放入C ,然后将当前记录的C结果再加上下一条记录的A,再减B.
(C=C+A-B)
如何用Sql做到?望赐教.
解决方案 »
- mysql中看看这个存储过程老是报错
- mysql存储过程,急、急、急。谢谢各位
- MySQL每次打开一个连接需要多大内存?
- 怎么winmysqladmin.exe后,输入用户名和密码?急
- 我在windows下用.net编译mysql的c api程序怎么老通不过呢?请指教!
- 怎么在vc中配置mysql使它在vc中能够使用?
- MySql 40W+数据,加上order by 查询速度很慢
- 帮帮!那里可以申请到免费的php+mysql空间?
- MySQL的sqlstr中<无法处理?
- 求助:一个sql查询问题,求大佬指教(本人是自学小白)
- 字段的长度对性能等有什么影响
- mysql中 repair table
select
*,
(select sum(a)-sum(b) from test where a<=t.a) as C
from
Test t
*,
(select sum(a)-sum(b) from test where 排序用字段<=t.排序用字段) as C
from
Test t
+------+-------+--------+
| year | month | amount |
+------+-------+--------+
| 1991 | 1 | 1.1 |
| 1991 | 2 | 1.2 |
| 1991 | 3 | 1.3 |
| 1991 | 4 | 1.4 |
| 1992 | 1 | 2.1 |
| 1992 | 2 | 2.2 |
| 1992 | 3 | 2.3 |
| 1992 | 4 | 2.4 |
+------+-------+--------+
8 rows in set (0.00 sec)mysql> select taa.*,sum(t.s) from taa,(select *,(year-month) s from taa) t where taa.amount>=t.amount group by taa.amount;
+------+-------+--------+----------+
| year | month | amount | sum(t.s) |
+------+-------+--------+----------+
| 1991 | 1 | 1.1 | 1990 |
| 1991 | 2 | 1.2 | 3979 |
| 1991 | 3 | 1.3 | 5967 |
| 1991 | 4 | 1.4 | 7954 |
| 1992 | 1 | 2.1 | 9945 |
| 1992 | 2 | 2.2 | 11935 |
| 1992 | 3 | 2.3 | 13924 |
| 1992 | 4 | 2.4 | 15912 |
+------+-------+--------+----------+
8 rows in set (0.00 sec)