小编Jam*_*YTL的帖子

通过从初始总和中依次减去每行的金额来计算每行的余额

我会用一个例子来解释这个问题。

一个查询,将选择并显示我所做的提款流程并显示我的存款余额状态。

Deposit创建一个包含列TotalAmount, 的表DepositDate

另一个表Withdrawal是用列WithdrawAmount,来创建的WithdrawDate

所以我使用 SELECT 查询从带有公式的两个表中进行选择:

SELECT WithdrawAmount,
CASE WHEN ( TotalAmount - WithdrawAmount) = 0 THEN 'ZeroBalanceOops'
ELSE 'StillAvailableYAY' as 'Status'
FROM Deposit Inner Join Withdraw WHERE [WithdrawDate] between this month beginning and ending
Run Code Online (Sandbox Code Playgroud)

所以对于这个查询,假设我有 500 的存款,并且只会存款一次。如果我这个月只提现一次,然后把押金全部提现,效果会很好。结果将显示如下:

| WithdrawAmount | Status          |
| 500            | ZeroBalanceOops |
Run Code Online (Sandbox Code Playgroud)

但是,如果我在一个月内提款不止一次,并且这些提款将使余额 = 0,则它不起作用。假设存款再次为 500,结果将显示如下:

| WithdrawAmount  | Status            |
| 250             | StillAvailableYAY |
| 250             | StillAvailableYAY | …
Run Code Online (Sandbox Code Playgroud)

sql-server select sql-server-2014 running-totals

3
推荐指数
1
解决办法
8999
查看次数