用于获取每行总金额的SQL查询

问题描述:

我有两个表,一个是分类帐中的分类帐,其中有字段Name和LedgerId。 并且还有另外一个表中有交易的字段,它们是transId,Date,ledgerId,Amount。用于获取每行总金额的SQL查询

 
tables :- 
Ledgers  transactions 
--------  ------------ 
LedgerId  transId 
Name   Date 
       ledgerId 
       Amount 

从每个台账它将存储到交易表,分类帐识别收集量的时候,我需要的报告是获得两个日期之间的交易清单。报告将会。

 
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

sql-server或ms-access? – SqlZim

+0

这是MS Access还是SQL Server?或两者? – Shawn

+0

你只想总结指定日期之间的交易吗?或者你想总结所有记录到结束日期?考虑构建报告并将其排序和分组与聚合计算功能一起使用。报告上的文本框具有RunningSum属性。否则,查看http://allenbrowne.com/subquery-01.html#YTD – June7

一种方法是使用相关子查询:

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的工作,不能完全确定有关访问。

+0

以及我有逻辑我会检查ms access.thank你。 – Selik

+0

正确的,它应该工作,但如果不让我知道 –

+0

它在Ms Access中工作。 – Selik