【发布时间】:2016-03-23 21:44:46
【问题描述】:
我有一个包含以下列的表:借方、贷方、借方余额、贷方余额和金额。借记卡和贷记卡都与特定帐户有关。
每次添加新行时,我都希望根据帐户的先前余额分配 debit_balance 和 credit_balance。
INSERT INTO `ledger` (`debit`, `credit`, `debit_balance`, `credit_balance`, `amount`)
VALUES ('1', '3',
(SELECT debit_balance FROM `ledger` WHERE `debit` = '1' ORDER BY `id` DESC LIMIT 0,1) + 5,
(SELECT credit_balance FROM `ledger` WHERE `credit` = '3' ORDER BY `id` DESC LIMIT 0,1) + 5,
'5')
其中借方账户为1,贷方账户为3,我要兑换的金额为5。
当我运行查询时,mysql 给我一个Every derived table must have its own alias 错误。
【问题讨论】:
-
那个查询没有做你想做的事情是怎么回事?
-
我收到
Every derived table must have its own alias错误,但我在赋值位置运行查询,而不是更有意义的连接。 -
该架构看起来非常奇怪,这可能是您的问题的一部分。真正的分类帐表没有“余额”列,余额只是贷方减去借方的总和。您是否尝试过为您的
ledger引用添加别名?以AS ledger_a为例。 -
大多数会计软件中的总账包括每次交易后的账户余额。我们使用余额列,这样我们就不必每次查看分类帐时都重新计算。
标签: mysql accounting