用于获取每行总量的SQL查询

时间:2017-08-30 19:00:43

标签: sql ms-access

我有两个表一个是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)

所以我想要总金额到目前为止列将是该分类帐的总金额直到该日期。我可以通过查询来做到这一点吗?

1 个答案:

答案 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。