【问题标题】:How to get the running total pay and running balance in mysql?如何在mysql中获得运行总工资和运行余额?
【发布时间】:2014-07-01 02:14:31
【问题描述】:

我有以下记录...

+----+-------+------------+
| ID | token | actual_pay |
+----+-------+------------+
|  1 | 500   | 900        |
|  2 | 400   | 900        |
|  3 | 300   | 900        |
|  4 | 600   | 900        |
|  5 | 800   | 900        |
|  6 | 700   | 900        |
|  7 | 400   | 900        |
|  8 | 450   | 900        |
|  9 | 900   | 900        |
| 10 | 800   | 900        |
| 11 | 700   | 900        |
| 12 | 800   | 850        |
+----+-------+------------+

我的问题是如何获得运行总工资和运行余额。
我的公式如下:
图例:
RTP = 运行总薪酬
BAL = 运行平衡
TK = 代币
PAY = 实际工资

公式:
1. 第一个ID,TK的值必须是RTP的默认值,所以BAL的公式为:
BAL=PAY-TK
2. 在第 2 到第 12 个 ID 时,公式为:
RTP=BAL+支付
BAL=RTP-TK

所以输出会是这样的......

+----+-----+-----+------+------+
| ID | TK  | PAY | RTP  | BAL  |
+----+-----+-----+------+------+
|  1 | 500 | 900 | 500  | 400  |
|  2 | 400 | 900 | 1300 | 900  |
|  3 | 300 | 900 | 1800 | 1500 |
|  4 | 600 | 900 | 2400 | 1800 |
|  5 | 800 | 900 | 2700 | 1900 |
|  6 | 700 | 900 | 2800 | 2100 |
|  7 | 400 | 900 | 3000 | 2600 |
|  8 | 450 | 900 | 3500 | 3050 |
|  9 | 900 | 900 | 3950 | 3050 |
| 10 | 800 | 900 | 3950 | 3150 |
| 11 | 700 | 900 | 4050 | 3350 |
| 12 | 800 | 850 | 4200 | 3400 |
+----+-----+-----+------+------+

【问题讨论】:

  • 这不是重复的...请查看问题...
  • 这不是重复的。规则与典型的运行总计不同。

标签: mysql sql balance


【解决方案1】:

我刚刚复制并粘贴了您的公式:

select id, token tk, actual_pay pay,
  if(@rtp is null, @rtp:=token, @rtp:=@bal+actual_pay) rtp,
  if(@bal is null, @bal:=actual_pay-token, @bal:=@rtp-token) bal
from records a
join (select @rtp:=null, @bal:=null) b
;

fiddle

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2021-12-08
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
相关资源
最近更新 更多