我有两个表一个是Ledgers在Ledgers中有字段Name和LedgerId。 还有另一个表事务,其中包含字段transId,Date,ledgerId,Amount。
tables :- Ledgers transactions -------- ------------ LedgerId transId Name Date ledgerId Amount
从每个分类帐中收集金额时,它将存储到带有分类帐ID的交易表中,我需要的报告是获取两个日期之间的交易清单。报告将是。
Date, Name, Amount, Total Amount so far
如何使用查询获取总金额,总金额表示当他/她存入该时间时分类帐中的金额。例如。
Date Name Amount in Date Total Amount so far 21/08/2017 Jon 100 100 (this is total of Jon's transaction) 22/08/2017 Danny 20 20 (this is total of Danny's transaction) 23/08/2017 Jon 50 150 (this is total of Jon's transaction) 24/08/2017 Danny 10 30 (this is total of Danny's transaction)
所以我想要总金额到目前为止列将是该分类帐的总金额直到该日期。我可以通过查询来做到这一点吗?
答案 0 :(得分:1)
一种方法是使用相关子查询:
SELECT t.Date, l.Name, t.Amount,
(SELECT SUM(Amount)
FROM transactions t2
WHERE t2.ledgerID = t.ledgerID
AND t2.date <= t.date) as TotalAmountToDate
FROM ledger l
JOIN transactions t on l.ledgerID = t.ledgerID
这适用于SQL Server,不完全确定Access。