我有一个表account(ID,TransDate,amount,isDebit,balance)
。为了清楚起见,这显然是我的桌子的一个修剪版本。 TransDate
是输入日期,isDebit
是一个布尔值,它告诉这个事务是一个DEBIT还是CREDIT。为以下输出生成一个sql查询
一个新的条目被创建时,它可能会有一个transDate
年龄大于最后一个条目,所以我必须将它放在正确的位置并更改将位于该位置之下的所有行的余额。在那里我通过transDate ASC,ID ASC对行进行排序,这给了我正确的条目顺序。
余额将通过将当前金额添加到上一个余额id DEBIT中生成,并在当前条目为CREDIT时扣除。
它具有如下最后5个条目sorted by transDate ASC , ID ASC
:
帐户(ID,TransDate,量,isDebit,平衡)为例
41 | 2011-04-10 | 1000 | 1 | 1000 // as this is the first entry but not always
37 | 2011-05-14 | 7500 | 1 | 8500
39 | 2011-05-14 | 6500 | 0 | 2000
46 | 2011-05-15 | 1000 | 1 | 3000
谁能生成查询(S):
要创建一个新的条目,并提供以下详细信息:<ID auto> | 2011-05-9 | 1000 | 1 | <balance>
查询应该会发现新的条目位置在行wi th ID 41和行ID 37之前,并且还从Id 41
(,因为该行的余额将用于计算新行的余额)和below
中提取我行,我在其上设置新的经校正的余额。
或建议实施这种“分类帐会计”的新方法。