我很难编写一个 SQL 查询,该查询将正确地将 account_no 组合在一起并减去一个金额。
首先,我编写了这个查询,除了 ACCOUNT_NO A-102 应该以 4500 结束,而不是两个不同的正确余额之外,它会更新所有内容。
select transactions.account_no, account.balance, transactions.amount,
(account.balance + transactions.amount) AS "CORRECT BALANCE"
from transactions, account
where account.account_no = transactions.account_no;
ACCOUNT_NO| BALANCE | AMOUNT | CORRECTBALANCE
A-102 | 4000 | 2000 | 6000
A-102 | 4000 | -1500 | 2500
A-222 | 8000 | -1000 | 7000
A-305 | 2000 | 1300 | 3300
我尝试按 account_no 求和和分组,但我无法弄清楚如何使用这两个表来执行此操作。这只是我尝试过但无法开始工作的事情。
select transactions.account_no, SUM(transactions.amount)
from transactions
group by transactions.account_no;
ACCOUNT_NO| SUM(TRANSACTIONS.AMOUNT)
A-305 | 1300
A-102 | 500
A-222 | -1000
预期结果应该是:
ACCOUNT_NO| BALANCE | AMOUNT | CORRECTBALANCE
A-102 | 4000 | 500 | 4500
A-222 | 8000 | -1000 | 7000
A-305 | 2000 | 1300 | 3300
这是因为帐户 A-102 它有两个不同的金额,但来自相同的余额。