我会用一个例子来解释这个问题。
一个查询,将选择并显示我所做的提款流程并显示我的存款余额状态。
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)